PHP配列の重複排除・蓄積・ソート処理、すべて50点プレゼント!
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $t = array ( array( 'cid' => 123, 'hits' => 200, ), array( 'cid' => 456, 'hits' => 100, ), array( 'cid' => 789, 'hits' => 300, ), array( 'cid' => 123, 'hits' => 600, ), array( 'cid' => 456, 'hits' => 500, ), array( 'cid' => 789, 'hits' => 700, ), );
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $t = array ( array( 'cid' => 789, 'hits' => 1000, ), array( 'cid' => 123, 'hits' => 800, ), array( 'cid' => 456, 'hits' => 600, ), );
foreach($t as $v){ if(!$ar[$v['cid']]) $ar[$v['cid']]=$v; それ以外 $ar[$v['cid']]['ヒッツ']+=$v['ヒッツ']; } foreach($ar as $v) $k[]=$v[hits]; array_multisort($k,SORT_DESC,$ar); print_r($ar); <br><font color="#e78608">------解決策------------------</font><br>
$t = 配列 ( 配列( 'cid' => 123、 「ヒット」 => 200、 )、 配列( 'cid' => 456、 「ヒット」 => 100、 )、 配列( 'cid' => 789、 「ヒット」 => 300、 )、 配列( 'cid' => 123、 「ヒット」 => 600、 )、 配列( 'cid' => 456、 「ヒット」 => 500、 )、 配列( 'cid' => 789、 「ヒット」 => 700、 )、 ); $r = 配列(); foreach($t as $v) { if(!isset($r[$v['cid']])) $r[$v['cid']] = $v; else $r[$v['cid']]['hits'] += $v['hits']; } usort($r, create_function('$a,$b', 'return $a["hits"]