@zevem
Стрелец

Как сгруппировать массив?

Есть массив

[0] => Array
        (
         'store_id' => '1', 
          'product_id' => '22'
)
[1] => Array
        (
         'store_id' => '1', 
          'product_id' => '23'
)
[2] => Array
        (
         'store_id' => '2', 
          'product_id' => '24'
)

Как сгруппировать по store_id, чтобы на выходе получилось следующее:

[0] => Array
        (
         'store_id' => '1', 
          'product_id' =>  Array
                (
                    [0] => Array ('product_id' =>22)
                    [1] => Array ('product_id' =>23)
                 )
)
[1] => Array
        (
         'store_id' => '2', 
          'product_id' =>  Array
                (
                    [0] => Array ('product_id' =>24)
                 )
)
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$grouped = array_values(array_reduce($data, function($acc, $n) {
  $id = $n['store_id'];
  if (!isset($acc[$id])) {
    $acc[$id] = [ 'store_id' => $id, 'product_id' => [] ];
  }
  $acc[$id]['product_id'][] = $n['product_id'];
  return $acc;
}, []));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы