2016-10-13 5 views
1

вот мне с проблемой у меня есть для сортировки таблицы на основе:Группировка или объединение нескольких массивов?

1- компетенции

2 уровень "Palier"

У меня есть этот массив:

[C2.1] => Array 
     (
      [palier] => Array 
       (
        [0] => 1 
        [1] => 2 
        [2] => 1 
       ) 

      [note] => Array 
       (
        [0] => 12.00 
        [1] => 13.00 
        [2] => 15.00 
       ) 


     ) 

и я бы хотел:

[C2.1] => Array 
     (
      [palier] => Array 
       (
        [1] => Array 
         (
          [note] => Array 
           (
            [0] => 12.00 
            [1] => 15.00 

           ) 

         ) 

         [2] => Array 
         (
          [note] => Array 
           (
            [0] => 13.00 

           ) 

         ) 

     ) 

Я получаю свой первый массив с этим кодом

foreach ($row5 as $key =>$values) 
{ 
    $val3 = preg_split('/;|,/', $values['cve']); 
    $val5 = preg_split('/;|,/', $values['note']); 
    $val6 = preg_split('/;|,/', $values['palier']); 
    for ($i = 0; $i < count($val3); $i++) 
    { 

$resultat2[$val3[$i]]['palier'][]= $val6[$i]; 
$resultat2[$val3[$i]]['note'][] = $val5[$i]; 
$resultat2[$val3[$i]]['nombre'] = count($resultat2[$val3[$i]]['note']); 
$resultat2[$val3[$i]]['moyenne'] = round(array_sum($resultat2[$val3[$i]]['note'])/count($resultat2[$val3[$i]]['note']),2); 
    } 

} 

, но я не могу помочь моему второму массиву!

+0

Вы должны добавить тег для языка программирования. – Marco13

+0

Вы не можете сделать такой запрошенный массив, так как в этом массиве дважды появляется «palier». – Xenos

+0

нормально, но как это сделать? – user2880176

ответ

0
foreach ($c21['palier'] as $p=>$group) { 
    if (!array_key_exists($group, $result)) { 
    $result[$group] = array('note' => array()); 
    } 
    $result[$group]['note'][] = $c21['note'][$p]; 
} 

Может также быть сделано с итераторами или так, но давайте KISS ♥.

Смежные вопросы