ホームページ バックエンド開発 PHPチュートリアル PHP は配列キーに基づいて合計を計算します

PHP は配列キーに基づいて合計を計算します

Jul 28, 2016 am 08:26 AM
game quot type

データ架型:

{"game_id":"111","type":2,"num":504},{"game_id":"111","type":6,"num":8154}, {"game_id":"111","type":41,"num":3426},{"game_id":"111","type":42,"num":45},{"game_id":" 111","type":43,"num":1873}

要件:

ハンドルtype=41 42 42的num相加 type 1 10相加

結果:

{"game_id":"111 ","type":2,"num":504},{"game_id":"111","type":6,"num":8154},{"game_id":"111","type": 41,"num":5344}

コード:

$str = '{"retCode":"0","re​​tMsg":"成功","data":[{"game_id":"111" ,"タイプ":2,"番号":504},{"ゲームID":"111","タイプ":6,"番号":8154},{"ゲームID":"111","タイプ":41 ,"番号":3426},{"ゲームID":"111","タイプ":42,"番号":45},{"ゲームID":"111","タイプ":43,"番号":1873 },{"ゲームID":"119","タイプ":1,"番号":38},{"ゲームID":"119","タイプ":2,"番号":381},{"ゲームID" :"119","タイプ":6,"数値":189},{"ゲームID":"119","タイプ":10,"数値":21},{"ゲームID":"120"," type":2,"num":31},{"game_id":"120","type":6,"num":291},{"game_id":"120","type":41," num":90},{"game_id":"120","type":43,"num":49},{"game_id":"127","type":1,"num":9}, {"game_id":"127","type":2,"num":111},{"game_id":"127","type":6,"num":60},{"game_id":" 129","タイプ":1,"番号":11},{"ゲームID":"129","タイプ":2,"番号":11},{"ゲームID":"129","タイプ" :6,"数値":48},{"ゲームID":"129","タイプ":10,"数値":2},{"ゲームID":"130","タイプ":6,"数値" :1},{"ゲーム ID":"137","タイプ":2,"数値":1},{"ゲーム ID":"139","タイプ":2,"数値":1387},{"ゲーム ID":"139","タイプ":6,"数値":3858},{"ゲーム ID":"139","タイプ":10,"数値":2358},{"ゲーム ID":"142" ,"タイプ":2,"番号":32},{"ゲームID":"142","タイプ":6,"番号":948},{"ゲームID":"142","タイプ":41 ,"番号":330},{"ゲームID":"142","タイプ":42,"番号":3},{"ゲームID":"142","タイプ":43,"番号":47 },{"ゲームID":"156","タイプ":2,"数値":11436},{"ゲームID":"156","タイプ":6,"数値":38135},{"ゲームID" :"156","タイプ":10,"数値":22170},{"ゲームID":"165","タイプ":6,"数値":6},{"ゲームID":"165"," type":41,"num":3},{"game_id":"165","type":43,"num":1},{"game_id":"50","type":2," num":3},{"game_id":"8f093ab4ad19a509208a8104605c6e42","type":2,"num":281},{"game_id":"92","type":1,"num":26}, {"game_id":"92","type":2,"num":186},{"game_id":"92","type":6,"num":153},{"game_id":" 94","タイプ":1,"番号":538},{"ゲームID":"94","タイプ":2,"番号":3357},{"ゲームID":"94","タイプ" :6,"num":2847},{"game_id":"94","type":10,"num":74}]}';

$aaa =  json_decode($str, true);
$data = $aaa['data'];
$new_array = array();
$array1 = array(41,42,43);
$array2 = array(1,10);
foreach($data as $v){
	if(in_array($v['type'], $array2)){
		if(isset($new_array[$v['game_id']][$array2[0]]['num'])){
			$new_array[$v['game_id']][$array2[0]]['num'] += $v['num'];
		}  else {
			$new_array[$v['game_id']][$array2[0]]['num'] = $v['num'];
		}
	}elseif (in_array($v['type'], $array1)) {
		if(isset($new_array[$v['game_id']][$array1[0]]['num'])){
			 $new_array[$v['game_id']][$array1[0]]['num'] += $v['num'];
		}  else {
			 $new_array[$v['game_id']][$array1[0]]['num'] = $v['num'];
		}
	}else{
		 if(isset($new_array[$v['game_id']][$v['type']]['num'])){
			$new_array[$v['game_id']][$v['type']]['num'] += $v['num'];
		}  else {
			$new_array[$v['game_id']][$v['type']]['num'] = $v['num'];
		}
	}
}
foreach($new_array as $k1 => $v1) {
	foreach($v1 as $k2 => $v2) {
		$new[$k1][] = array(
			'game_id' => $k1,
			'type' => $k2,
			'num' => $v2['num']
		);
	}
}
ログイン後にコピー

以上は、特定のキーグループに基づいて php を計算し、側面の内容を含めたもので、PHP 教則に関心のある友人の助けになることを望みます。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11 で Xbox Game Bar を完全にアンインストールする方法は? Xbox Game Bar をアンインストールする方法を共有する Win11 で Xbox Game Bar を完全にアンインストールする方法は? Xbox Game Bar をアンインストールする方法を共有する Feb 10, 2024 am 09:21 AM

Win11XboxGameBar を完全にアンインストールするにはどうすればよいですか? Xbox GameBar は、システムに付属するゲーム プラットフォームです。ゲームの録画、スクリーンショット、ソーシャル機能のためのツールを提供します。ただし、大量のメモリを消費するため、アンインストールするのは簡単ではありません。アンインストールしたい友達もいますが、完全にアンインストールする方法を以下に紹介します。方法 1. Windows ターミナルを使用する 1. [Win+X] キーの組み合わせを押すか、タスクバーの [Windows スタート メニュー] を [右クリック] して、表示されるメニュー項目から [ターミナル アドミニストレータ] を選択します。 2. [ユーザー アカウント制御] ウィンドウで、このアプリがデバイスに変更を加えることを許可しますか? [はい]をクリックします。 3. 次のコマンドを実行します: Get-AppxP

Go での Type キーワードの用途は何ですか? Go での Type キーワードの用途は何ですか? Sep 06, 2023 am 09:58 AM

Go での Type キーワードの使用には、新しい型エイリアスの定義または新しい構造型の作成が含まれます。詳細な導入: 1. 型エイリアス。既存の型のエイリアスを作成するには、「type」キーワードを使用します。このエイリアスは新しい型を作成しませんが、既存の型に新しい名前を提供するだけです。型エイリアスはコードを改善できます。コードの可読性により、コードがより明確になります; 2. 構造タイプ。新しい構造タイプを作成するには、「type」キーワードを使用します。構造は、複数のフィールドを含むカスタム タイプを定義するために使用できる複合タイプです。

Ubuntu のモバイル ハードディスク エラーの解決: ファイル システム タイプ exfat が不明です Ubuntu のモバイル ハードディスク エラーの解決: ファイル システム タイプ exfat が不明です Jan 05, 2024 pm 01:18 PM

Ubuntu がモバイル ハードディスクをマウントするとエラーが発生します: mount:knownfilesystemtype'exfat' 処理方法は次のとおりです: Ubuntu13.10 または exfat-fuse をインストール: sudoapt-getinstallexfat-fuseUbuntu13.04 以下 sudoapt-add-repositoryppa:relan /exfatsudoapt-getupdatesudoapt-getinstallfuse- exfatCentOS Linux マウント exfat フォーマットの USB ディスク エラー解決方法 CentOS で extfa をロードする

黒神話:悟空 が、発売からわずか数時間で 220 万人の Steam プレイヤーを擁する競争を打ち破る 黒神話:悟空 が、発売からわずか数時間で 220 万人の Steam プレイヤーを擁する競争を打ち破る Aug 21, 2024 am 10:25 AM

Black Myth: Wukong に対する誇大宣伝は、ゲームが発売日に向けてゆっくりと進んでいくにつれて世界中で感じられ、8 月 20 日の発売でも期待を裏切りませんでした。ゲーム コミュニティ全体から非常に温かい歓迎を受けました。オンになってから

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Linux系コマンド Linux系コマンド Mar 20, 2024 pm 05:06 PM

このガイドでは、Linux の「type」コマンドについて詳しく学習します。前提条件: このガイドで説明する手順を実行するには、次のコンポーネントが必要です。 適切に構成された Linux システム。テストと学習を目的とした LinuxVM の作成方法をご覧ください。コマンド ライン インターフェイスの基本的な理解 Linux の Type コマンドは、他の Linux 固有のコマンド (例: ls、chmod、shutdown、vi、grep、pwd など) とは異なります。引数として表示される Bash 関数。提供されるコマンド タイプに関する情報。 $type Bash に加えて、他のシェル (Zsh、Ksh など) も付属しています。

Redis の種類とエンコーディングの原則と使用法は何ですか? Redis の種類とエンコーディングの原則と使用法は何ですか? May 29, 2023 pm 04:21 PM

概要 Redis は、さまざまなシナリオで広く使用されているオープンソースの高性能キー/値データベースです。 Redisでは、データ型(type)とエンコーディング(encoding)は非常に重要な概念です。このブログでは、Redis でサポートされるデータ型、対応するエンコード方法、および基礎となる実装原則について詳しく紹介します。 Redis キーの内部エンコーディングを表示するには、Redis コマンド OBJECTENCODINGkey を使用できます。このうち key はクエリしたいキー名です。たとえば、mykey という名前のキーの内部エンコードをクエリする場合は、次のコマンドを実行できます: 127.0.0.1:6379>objectencodin

DeepSeekアカウントを登録するときに必要な情報は何ですか? DeepSeekアカウントを登録するときに必要な情報は何ですか? Mar 12, 2025 pm 02:33 PM

必要な情報:1。登録。携帯電話番号登録。登録が成功した後、通常、ニックネーム、性別、誕生日などの基本的な個人情報を入力する必要があります。

See all articles