как вернуть html структуру из функции в виде строки

Нужно вернуть html структуру из функции в виде строки чтобы записывать в массив

function create_arr_table_body($groups){
 $arr = [];

 foreach ($groups as $group_name => $value) {

  foreach ($value as $user){
    $arr[$group_name][] = create_table_body($user);
  }

 }

 return $arr;
}


function create_table_body($user) {  ?>
 <tbody class="<?=$user['group']?>">
  <tr>
    <td><?= $user['login'] ?> </td>
    <td><?= $user['win'] ?>   </td>
    <td><?= $user['defeat'] ?></td>
    <td><?= $user['score'] ?> </td>
    <td><?= $user['percent'] ?>%</td>
  </tr>
 </tbody>
<?php 
}

Ответы (1 шт):

Автор решения: Neolot

Используйте оператор конкатенации, "точка".

<?php
function create_table_body($user) {
    $output = '';

    $output .= '<tbody class="' . $user['group'] . '">';
    $output .= '<tr>';
    $output .= '<td>' . $user['login'] . '</td>';
    $output .= '<td>' . $user['win'] . '</td>';
    $output .= '<td>' . $user['defeat'] . '</td>';
    $output .= '<td>' . $user['score'] . '</td>';
    $output .= '<td>' . $user['percent'] . '</td>';
    $output .= '</tr>';
    $output .= '</tbody>';

    return $output;
}
→ Ссылка