PHP配列の重複排除・蓄積・ソート処理を50ポイントプレゼント!解決

WBOY
リリース: 2016-06-13 13:37:30
オリジナル
886 人が閲覧しました

PHP配列の重複排除・蓄積・ソート処理、すべて50点プレゼント!

PHP コード
<!--

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,
  ),
);

ログイン後にコピー

配列には cid が繰り返される値が多数あり、対応するヒットが異なります。cid をソートし、ヒットを蓄積したいと考えています。を入力し、ヒットした順に逆順に並べて出力します。 結果は次のようになります。
PHP コード
<!--

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,
  ),
);

ログイン後にコピー

皆さん、ありがとうございます。

-----解決策---------
PHP コード
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>
ログイン後にコピー
PHP コード
$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"]
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート