質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1928閲覧

配列の値をキー毎に追加しながらマージする

kphex

総合スコア42

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/11/08 03:13

編集2017/11/08 03:21

###要件
DBから取得したデータで、集計の際に必要な以下のような配列があり、配列の中身を追加しながらマージをしたいと思っております。

バージョン
CentOS 6.8
php : 5.6

php

1[0]=> 2 array(6) { 3 ["call_count"]=>string(2) "22" 4 ["duration"]=>string(8) "00:00:15" 5 ["call_status"]=> 6 array(5) { 7 ["断り"]=>int(5) 8 ["不在"]=>int(4) 9 ["留守"]=>int(5) 10 ["断り(他)"]=>int(7) 11 [""]=>int(1) 12 } 13 } 14 [1]=> 15 array(5) { 16 ["call_count"]=>string(1) "9" 17 ["duration"]=>string(8) "00:00:30" 18 ["call_status"]=> 19 array(4) { 20 [""]=>int(1) 21 ["資料送付"]=>int(2) 22 ["断り"]=>int(5) 23 ["不在"]=>int(1) 24 } 25 }

###期待する結果

php

1[0]=> 2 array(6) { 3 ["call_count"]=>string(2) "31" 4 ["duration"]=>string(8) "00:00:45" 5 ["call_status"]=> 6 array(5) { 7 ["断り"]=>int(10) 8 ["不在"]=>int(5) 9 ["留守"]=>int(5) 10 ["断り(他)"]=>int(7) 11 ["資料送付"]=>int(2) 12 [""]=>int(2) 13 } 14 }

###やってみた事
+演算子で一次の配列は問題なく追加出来たのですが、これだと2次元になるcall_countの配列がどうしても値まで追加しながらが実現出来ず、方法がわからないままでいます。

php

1foreach($data as $key => $val) { 2 if($key < 0) { 3 $data[0]['call_count'] += $val['call_count']; 4 $data[0]['duration'] += $val['duration']; 5 $data[0]['call_status'] += $val['call_status']; 6 } 7 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2017/11/08 03:28 編集

var_dumpなどの出力形式はなく、配列式として例示できますか?
yambejp

2017/11/08 03:30

それと文字列の加算は数値として計算して文字列に戻すのでしょうか?string(2) "22"にstring(1) "9"を足すと普通はstring(3) "229"、そうでなければint(31)では?
guest

回答1

0

ベストアンサー

やることは同じです。

php

1foreach($data as $key => $vals) { 2 //処理 3 foreach ($vals['call_status'] as $val) { 4 //処理 5 } 6}

ただ、単純な足し算にはならないと思うので、項目ごとに処理しやすいオブジェクトの型でデータを持ったほうが楽な気がします。

投稿2017/11/08 04:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問