-1
我一直试图分组在PHP中的倍数值的数组的一个问题...分组阵列由具有多个值的字段在PHP
鉴于像数组:
$in[] = array('year' => '2010', 'month' => '11', 'grupo' => '2', 'quantity' => 3);
$in[] = array('year' => '2010', 'month' => '11', 'grupo' => '3', 'quantity' => 4);
$in[] = array('year' => '2011', 'month' => '2', 'grupo' => '2', 'quantity' => 4);
$in[] = array('year' => '2011', 'month' => '2', 'grupo' => '2', 'quantity' => 4);
$in[] = array('year' => '2012', 'month' => '3', 'grupo' => '4', 'quantity' => 3);
$in[] = array('year' => '2012', 'month' => '3', 'grupo' => '4', 'quantity' => 3);
我想要得到:
$out[] = array('year' => '2010', 'month' => '11', 'grupo' => '2', 'quantity' => 3);
$out[] = array('year' => '2010', 'month' => '11', 'grupo' => '3', 'quantity' => 4);
$out[] = array('year' => '2011', 'month' => '2', 'grupo' => '2', 'quantity' => 8);
$out[] = array('year' => '2012', 'month' => '3', 'grupo' => '4', 'quantity' => 6);
我已经试过这样的事情:
$out = array();
foreach ($in as $row) {
if (!isset($out[$row['year']['month']['grupo']])) {
$out[$row['year']['month']['grupo']] = array(
'year' => $row['year'],
'month' => $row['month'],
'grupo' => $row['grupo'],
'quantity' => 0,
);
}
$out[$row['year']['month']['grupo']]['quantity'] += $row['quantity'];
}
$out = array_values($out);
但它失败3组字段。
如果有人可以帮助我,它会大大超过它!
感谢您的答复,但我通过数量需要排序,我想使用: 的foreach($出为$关键=> $行){ $ aux [$ key] = $ row ['quantity']; } array_multisort($ aux,SORT_DESC,$ out); – Gonzalo1987 2014-09-30 17:42:09
我以为你会独自解决,但在这里。 – hellcode 2014-09-30 17:45:50
我没有意识到,你是对的,Tyvm! – Gonzalo1987 2014-09-30 17:49:14