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

#php #arrays

#php #массивы

Вопрос:

вот я с проблемой, мне нужно отсортировать таблицу на основе:

1- компетентность

2 уровень «бледнее»

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

 [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);
    }

}
 

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

Комментарии:

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

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

3. хорошо, но как это сделать?

4. Но зачем вам это нужно

5. хорошо, я меняю свой массив 2, как мне получить массив 2

Ответ №1:

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

Это также можно сделать с помощью итераторов или около того, но давайте ПОЦЕЛУЕМСЯ ♥.