У меня есть следующие $array
:
Array
(
[0] => Array
(
[cd] => 1675
[amt_1] => 199.50
[fname] => Joe
[lname] => A
)
[1] => Array
(
[cd] => 1675
[amt_1] => 69.90
[fname] => Joe
[lname] => A
)
[2] => Array
(
[cd] => 1676
[amt_1] => 69.90
[fname] => Tracy
[lname] => A
)
[3] => Array
(
[cd] => 1676
[amt_1] => 199.50
[fname] => Tracy
[lname] => A
)
...
)
Я пытаюсь сгруппировать их, в данном случае, по fname
или cd
, чтобы у меня было что-то вроде:
[0] => Array
(
[cd] => 1676
Array
(
[0] => Array
(
[amt_1] => 199.50
)
[1] => Array
(
[amt_1] => 69.90
)
[fname] => Joe
[lname] => A
)
[1] => Array
(
[cd] => 1676
Array
(
[0] => Array
(
[amt_1] => 199.50
)
[1] => Array
(
[amt_1] => 69.90
)
[fname] => Tracy
[lname] => A
)
........
Я не могу понять это.
Это не может быть сделано в MySQL, мне нужно сделать это в PHP.
Есть идеи?
Спасибо
edit: я знаю, что пример результата не отформатирован правильно, но в основном я хочу объединить fname
, а остальные результаты помещают их в массивы.
редактирование:
@Paulo H
есть хорошая идея. также я нашел другой способ сделать это, объединяя это вместе, не объединяя это:
$groups = array ();
foreach ( $the_array as $item ) {
$key = $item ['fname'];
if (! isset ( $groups [$key] )) {
$groups [$key] = array ('items' => array ($item ), 'count' => 1 );
} else {
$groups [$key] ['items'] [] = $item;
$groups [$key] ['count'] += 1;
}
}