お世話になります。二次元配列の要素の中に要素がなければ、新しく配列を追加するようなコードを書きたいのですが、どのようにすればよろしいでしょうか。
やりたいこと:
$arr = array();
$arr2 = array(1 , 2);
array_push($arr , $arr2);
$arr3 = array("1 7","3 4","5 6","1 5","2 4");
foreachで$arr3の値を回して、その要素の最初の値が$arrの中にある配列(初期配列はarr2)の要素と一致すれば、$arr3の第2要素(最初の例でいうと7)を$arrの中のarr2にpushする。なければ、新しく配列を作って、$arrに新しく配列をpushする。
上の例でいうと、array(1 , 2)には"1 7"の1があるので、array(1 , 2)をarray(1 , 2 , 7)にしたい。次の"3 4"はないので、$arr4 = array(3 , 4)として、$arrの第2要素としてpushしたい。
Array ( [0] => Array ( [0] => 1 [1] => 2 ) )
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 7) )
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 7) [1] => Array ( [0] => 3 [1] => 4 ) )
これをarr3の与えられる配列の値が1<N<100で、要素の数も1<N<100でランダムに与えられても、上のルールに従った正しい配列を作りたいのですが、どのようなロジックを組めばよろしいでしょうか。
答えでなくても、ヒントでも構いません。この記事が参考になるよとかでもいいので、教えていただければ幸いです。
#追記です
arr3の複数の値が複数の配列に含まれる場合は配列をマージしたいです。
上の例で言うと、arr3の"1 5"のところで、Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 7) )とArray ( [2] => Array ( [0] => 5 [1] => 6 ) )をマージして、 Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7) )としたいです。
回答1件
あなたの回答
tips
プレビュー