ホームページ >バックエンド開発 >PHPチュートリアル >2 つの配列を結合するソリューション

2 つの配列を結合するソリューション

WBOY
WBOYオリジナル
2016-06-13 12:26:20842ブラウズ

2 つの配列
の組み合わせを説明するのは難しいので、例を示します。

array1
array1[0] = '1';
array1[1] = '2';

array2
array2[0] = '3';
array2[1] = '4';



array[0] に結合したい][' arr1'] = '1'
配列[0]['arr2'] = '3'

配列[1]['arr1'] = '1'
配列[ 1][ 'arr2'] = '4'

配列[2]['arr1'] = '2'
配列[2]['arr2'] = '3'

array [3]['arr1'] = '2'
array[3]['arr2'] = '4'
-----解決策のアイデア----- --- ----------------
これはデカルト積を求めるためのものです
-----解決策のアイデア---- ----- -------------
再帰を使って実装していますが、配列が 2 つまでしかできないのですが、この方法は少し愚かな気がします

<br />$arr1=array(1,2);<br />$arr2=array(3,4);<br /><br />$res = test($arr1,$arr2,0,0);<br /><br />echo "<pre class="brush:php;toolbar:false">";<br />print_r($res);<br />echo "
";

function test($arr1,$arr2,$index1=0,$index2=0) {
static $result = array();
$tmp[]=$arr1[$index1];
$tmp[]=$arr2[$index2];
$result [] = $tmp;

if(($index1==count($arr1)-1) && ($index2==count($arr2)-1)){
return $result;
}else{
if($index2==count($arr2)-1){
$index1++;
$index2 = 0;
}else{
$index2++;
}
return test($arr1,$arr2,$index1,$index2);
}
}
/*
Array
(
[0] => Array
(
[0] => 1
[1] => 3
)

[1] => Array
(
[0] => 1
[1] => 4
)

[2] => Array
(
[0] => 2
[1] => 3
)

[3] => Array
(
[0] => 2
[1] => 4
)

)
*/

------解決策のアイデア----------------------
<br />$arr1 = array(1,2);<br />$arr2 = array(3,4);<br />$arr = array();<br /><br />for($i=0,$max1=count($arr1); $i<$max1; $i++){<br />    for($j=0,$max2=count($arr2); $j<$max2; $j++){<br />        $tmp = array();<br />        $tmp['arr1'] = $arr1[$i];<br />        $tmp['arr2'] = $arr2[$j];<br />        $arr[] = $tmp;<br />    }<br />}<br /><br />print_r($arr);<br />

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