PHP: как сгруппировать массив по ключу?

173
17 августа 2018, 10:40

Подскажите, как можно сгруппировать массив в PHP:

  $arr = array (
       0 => array (
             'test1' => '1',
              ),
       1 => array (
             'test2' => '2',
              ),
       2 => array (
             'test3' => '3',
              ),
       3 => array (
             'test3' => '4',
              )
  );

Нужно сгруппировать по ключу test3 таким образом, чтобы он остался ключом, а значения стали массивом для этого ключа.

Например:

  $arr = array (
       0 => array (
             'test1' => '1',
              ),
       1 => array (
             'test2' => '2',
              ),
       2 => array (
             'test3' => array('3', '4')
              )
  );
Answer 1

От руки

function groupByKey(&$arr, $recurs = true, $full_recurs = true) {
    $new_arr = array();
    foreach ($arr AS $val) {
        foreach ($val AS $key=>$value) {
            if (is_array($value) && $recurs) $value = groupByKey($value, $full_recurs);
            $new_arr[$key][] = $value;
        }
    }
    return $new_arr;
}
READ ALSO
Почему не работает цикл PHP?

Почему не работает цикл PHP?

Имеется следующий PHP код, цикл не хочет запускаться по какой-то причине, описанной в ошибкеPHP говорит, что нужно поставить запятую или точку...

153
Сохранение многие ко многим laravel

Сохранение многие ко многим laravel

У меня имеется три собой таблицы:

167
Обработка ошибок file_get_contents

Обработка ошибок file_get_contents

Допустим я получаю ошибку 500 от сервера при попытке подключиться/скачать содержимоеМожно ли как-то обработать эту ошибку так, что бы происходил...

163
laravel и public

laravel и public

Необходимо чтобы в ссылке на главную страницу не было /public (версия laravel последняя)Использую данный код в

161