Как правильно выводить данные с массива битрикс?

Пытаюсь правильно получить данные, с массива данных подскажите как правильно выводить?

while ($arSect = $rsSect->GetNext())
           {
            $sectionNames = $arSect["NAME"]; // наше имя
        
         echo "<tr><td>".$arUser['ID']."</td><td>".$arUser['NAME']."&nbsp".$arUser['LAST_NAME']."&nbsp".$arUser['SECOND_NAME']."</td><td>".$sectionNames." / ".$sectionName."</td></tr>";
           }

тут приходят данные так

867 Юлия Белова Анатольевна Главный отдел / Отдел в котором человек
867 Юлия Белова Анатольевна Отдел 1 / Отдел в котором человек
867 Юлия Белова Анатольевна Отдел 2 / Отдел в котором человек

а хотелось бы получать

867 Юлия Белова Анатольевна Главный отдел / Отдел 1 / Отдел 2 / Отдел в котором человек

Весь код:

   <?
        
        $result = \Bitrix\Main\UserTable::getList(array(
        
            'select' => array('ID','NAME','LAST_NAME','SECOND_NAME','UF_DEPARTMENT'), // выберем идентификатор и генерируемое (expression) поле SHORT_NAME
    
            'order' => array('LAST_LOGIN'=>'DESC'), // все группы, кроме основной группы администраторов,
        
    
        
        ));
        ?>
    
        <table class="allusers">
         <thead><th>ID</th><th>Имя Фамилия</th><th>Отдел</th></thead>
        <?
    
        while ($arUser = $result->fetch()) {
     foreach ($arUser['UF_DEPARTMENT'] as $key => $value) {
    
       }
    
    $arFilter = array("IBLOCK_ID"=>5, "ID" => $value);
    //какие свойства хотим получить, в данном случае нам надо название, описание и пользовательское свойство раздела (создается в меню редактирования раздела в админке)
    $arSelect =  array("NAME", "DESCRIPTION", "UF_PRE");
    $rsResult = CIBlockSection::GetList(array("SORT"=>"ASC"), $arFilter, false, $arSelect);
    while($ob = $rsResult->GetNext()) {
         $sectionName = $ob["NAME"]; // наше имя
    
    }
    //пример выборки дерева подразделов для раздела 
    $rsParentSection = CIBlockSection::GetByID($value);
    if ($thisSection = $rsParentSection->GetNext())
    {
       $arFilter = array('IBLOCK_ID' => 5,        "<=LEFT_BORDER" => $thisSection["LEFT_MARGIN"],
          ">=RIGHT_BORDER" => $thisSection["RIGHT_MARGIN"],
          "<DEPTH_LEVEL" => $thisSection["DEPTH_LEVEL"]); // выберет потомков без учета активности
       $rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter);
       while ($arSect = $rsSect->GetNext())
       {
        $sectionNames = $arSect["NAME"]; // наше имя
    
     echo "<tr><td>".$arUser['ID']."</td><td>".$arUser['NAME']."&nbsp".$arUser['LAST_NAME']."&nbsp".$arUser['SECOND_NAME']."</td><td>".$sectionNames." / ".$sectionName."</td></tr>";
       }
    }
        }
    
        ?>

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

Автор решения: Максим

вот это:

while ($arSect = $rsSect->GetNext())
       {
        $sectionNames = $arSect["NAME"]; // наше имя
    
     echo "<tr><td>".$arUser['ID']."</td><td>".$arUser['NAME']."&nbsp".$arUser['LAST_NAME']."&nbsp".$arUser['SECOND_NAME']."</td><td>".$sectionNames." / ".$sectionName."</td></tr>";
       }

замените на это:

while ($arSect = $rsSect->GetNext()){
  $section = (isset($tab_info[$arUser['ID']]['section']))? $tab_info[$arUser['ID']]['section'] : '';
  $tab_info[$arUser['ID']] = [
      'id' => "<td>".$arUser['ID']."</td>",
      'fio' =>"<td>".$arUser['NAME']."&nbsp".$arUser['LAST_NAME']."&nbsp".$arUser['SECOND_NAME']."</td>",
      'section' => $section.' / '.$arSect["NAME"],
      'personalSection' => $sectionName,

  ];
}
$table = '';
foreach ($tab_info as $row) {
    $table .= "<tr>$row[id] $row[fio]<td>$row[section] / $row[personalSection]</td></tr>";
}
echo $table;

вместо этого:

foreach ($arUser['UF_DEPARTMENT'] as $key => $value) {
    
       }

правильнее использовать это:

$value = end($arUser['UF_DEPARTMENT']);
→ Ссылка