お世話になります。
ある関数内が以下の様な配列になっており、 複数の配列が第一階層の Array で配列が分断されているのですが、
これをひと纏めにしたいのです。
どなたかご教授の方、お願いいたします。
Array
(
[0] => Array
(
[id_product_comment] => 2
[id_product] => 11
[id_customer] => 2
)
[1] => Array ( [id_product_comment] => 4 [id_product] => 11 [id_customer] => 2 ) [2] => Array ( [id_product_comment] => 8 [id_product] => 11 [id_customer] => 2 ) [3] => Array ( [id_product_comment] => 10 [id_product] => 11 [id_customer] => 2 )
)
Array
(
[0] => Array
(
[id_product_comment] => 5
[id_product] => 12
[id_customer] => 2
)
[1] => Array ( [id_product_comment] => 9 [id_product] => 12 [id_customer] => 2 )
)
Array
(
[0] => Array
(
[id_product_comment] => 6
[id_product] => 16
[id_customer] => 2
)
)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
ご回答いただいた皆様ありがとうございました!
投稿2016/06/29 01:28
総合スコア23
0
php
1<?php 2$before = array( 3 array( 4 array( 5 'id_product_comment' => 2, 6 'id_product' => 11, 7 'id_customer' => 2 8 ), 9 array( 10 'id_product_comment' => 4, 11 'id_product' => 11, 12 'id_customer' => 2 13 ), 14 array( 15 'id_product_comment' => 8, 16 'id_product' => 11, 17 'id_customer' => 2 18 ), 19 array( 20 'id_product_comment' => 10, 21 'id_product' => 11, 22 'id_customer' => 2 23 ) 24 ), 25 array( 26 array( 27 'id_product_comment' => 5, 28 'id_product' => 12, 29 'id_customer' => 2 30 ), 31 array( 32 'id_product_comment' => 9, 33 'id_product' => 12, 34 'id_customer' => 2 35 ) 36 ), 37 array( 38 array( 39 'id_product_comment' => 6, 40 'id_product' => 16, 41 'id_customer' => 2 42 ) 43 ) 44); 45 46echo 'Before : '; 47print_r($before); 48 49$after = array(); 50foreach ($before as $element) { 51 $after = array_merge($after, $element); 52} 53 54echo 'After : '; 55print_r($after);
実行結果
Before : Array ( [0] => Array ( [0] => Array ( [id_product_comment] => 2 [id_product] => 11 [id_customer] => 2 ) [1] => Array ( [id_product_comment] => 4 [id_product] => 11 [id_customer] => 2 ) [2] => Array ( [id_product_comment] => 8 [id_product] => 11 [id_customer] => 2 ) [3] => Array ( [id_product_comment] => 10 [id_product] => 11 [id_customer] => 2 ) ) [1] => Array ( [0] => Array ( [id_product_comment] => 5 [id_product] => 12 [id_customer] => 2 ) [1] => Array ( [id_product_comment] => 9 [id_product] => 12 [id_customer] => 2 ) ) [2] => Array ( [0] => Array ( [id_product_comment] => 6 [id_product] => 16 [id_customer] => 2 ) ) ) After : Array ( [0] => Array ( [id_product_comment] => 2 [id_product] => 11 [id_customer] => 2 ) [1] => Array ( [id_product_comment] => 4 [id_product] => 11 [id_customer] => 2 ) [2] => Array ( [id_product_comment] => 8 [id_product] => 11 [id_customer] => 2 ) [3] => Array ( [id_product_comment] => 10 [id_product] => 11 [id_customer] => 2 ) [4] => Array ( [id_product_comment] => 5 [id_product] => 12 [id_customer] => 2 ) [5] => Array ( [id_product_comment] => 9 [id_product] => 12 [id_customer] => 2 ) [6] => Array ( [id_product_comment] => 6 [id_product] => 16 [id_customer] => 2 ) )
投稿2016/06/28 13:34
総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
質問の記述だと 3 つの配列があるようにも見えるんですけど、それらも1つの配列になっているということですね。
array_merge
を call_user_func_array
で呼べばいけると思いますよ。
php
1$arr2 = call_user_func_array('array_merge', $arr);
PHP7 ならこれでも大丈夫です。
php
1$arr2 = array_merge(...$arr);
やってることは要するにこういうことです。
php
1$arr2 = array_merge($arr[0], $arr[1], $arr[2]);
投稿2016/06/28 10:51
編集2016/06/28 10:52総合スコア4514
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/28 12:45
0
配列同士の結合ならarray_mergeが便利だと思います。
array_merge使用例3つ、実行結果はすべて同じです。
php
1// 第一階層の要素数が固定なら普通に渡す 2$result = array_merge($array[0], $array[1], $array[2]); 3 4// 可変ならcall_user_func_arrayを通して 5$result = call_user_func_array('array_merge', $array); 6 7// PHP5.6以降なら...で引数を展開できる 8$result = array_merge(...$array);
call_user_func_array
http://php.net/manual/ja/function.call-user-func-array.php
... による引数のアンパック
http://php.net/manual/ja/migration56.new-features.php#migration56.new-features.splat
投稿2016/06/28 10:45
総合スコア1221
0
とりあえず地道に
PHP
1$ar = array(); 2foreach ($data1 as $d) { 3 $ar[] = $d; 4} 5// 以下その他のデータも同様に
イメージの齟齬がないといいのですが…
投稿2016/06/28 10:40
総合スコア7460
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。