Групировка масива

WMix

герр M:)ller
Партнер клуба
есть масив
PHP:
array(
  array('b' => 10, 'c' => 20),
  array('b' => 11, 'c' => 20),
  array('b' => 10, 'c' => 22),
  array('b' => 12, 'c' => 23)
);
масив получен из базы данных где 'b' и 'c' являются ключами в таблице при отношении m:n
хочется сгрупировать массив по одному из столбцов и получить
PHP:
array(
  array('b' => 10, 'c' => array(20,22)),
  array('b' => 11, 'c' => array(20)),
  array('b' => 12, 'c' => array(23))
)
или самый идеальный вариант
PHP:
array(
  10 => array(20,22),
  11 => array(20),
  12 => array(23)
)
кроме цикла ничего не могу придумать...
PHP:
foreach($rows as $row ){
  $out[ $row['b'] ][] = $row['c'];
}
есть функция которая делает чтото подобное?
 

Beavis

Banned
кроме цикла ничего не могу придумать...
PHP:
foreach($rows as $row ){
  $out[ $row['b'] ][] = $row['c'];
}
есть функция которая делает чтото подобное?
чем тебя цикл не устраивает? или тебе нужна функция array_group_by_value_special_for_wmix() ?
все функции для работы с массивом - тут http://www.php.net/manual/en/ref.array.php
 

С.

Продвинутый новичок
Есть такая функция!
У нее внутри цикл.
 

WMix

герр M:)ller
Партнер клуба
да , так и написал, да заворачивать безсмысленно, задача частенькая, подумал, возможно есть ускоренный на пол зернышка способ, а я не знаю!
 

Pez!

Я твой сайт похапе писал
Вопрос к профи - а может лучше бы было сделать хитрый запрос на sql, чем заниматься этим на php ? В плане быстродействия что лучше ?
 

Beavis

Banned
Вопрос к профи - а может лучше бы было сделать хитрый запрос на sql, чем заниматься этим на php ? В плане быстродействия что лучше ?
А когда понадобится чуть изменить структуру массива - придется копаться в SQL-запросе?
В настоящее время обычно первый приоритет отдается не быстродействию, а понятности и удобству поддержки кода.
Поэтому "хитрые" запросы тут абсолютно ни к чему.
 

Фанат

oncle terrible
Команда форума
сложно сказать.
если в плане производительности, то если данных мало, то я бы сортировал в пыхе.
а если много - то в биде.
но все зависит
 
Сверху