3種類の配列結合方法について動作をみてみる。
前提条件として以下
$array1 = array("aaa"=>"111", 2, "3"=>"ccc"); $array2 = array(5, "aaa"=>"222", 1=>"bbb");
※他の配列処理については下記
>>PHPでの配列操作メモ
重複しても値を保持 array_merge_recursive()
実行命令
$array3 = array_merge_recursive($array1, $array2);
結果
$array3 = Array ( [aaa] => Array ( [0] => 111 [1] => 222 ) [0] => 2 [1] => ccc [2] => 5 [3] => bbb )
- 結合配列が同じキーを保持していた場合は、該当キーの値は配列化されるが、値を全て保持している
- 数字キーは番号を振りなおされている
- 文字列キーである『$array1["3"]』が、数字キーと判断され、キーを当てなおされた
キーと値の関係維持 配列+配列
実行命令
$array4 = $array1 + $array2;
結果
$array4 = Array ( [aaa] => 111 [0] => 2 [3] => ccc [1] => bbb )
- キーと値の関係を変更しない
- 結合配列が同じキーを保持していた場合は、先に入っていた値を保持。
値更新・キー振り直し array_merge()
実行命令
$array5 = array_merge($array1, $array2);
結果
$array5 = Array ( [aaa] => 222 [0] => 2 [1] => ccc [2] => 5 [3] => bbb )
- 結合配列が同じキーを保持していた場合は、後から入っていた値を保持。
- 文字列キーである『$array1["3"]』が、数字キーと判断され、キーを当てなおされた
コメント