<?php $a = array( "HOGE"=>"A", "PIYO"=>"B", "C", 4=>"D" ); $b = array( "E", "PIYO"=>"TEST", "FUGA"=>"F", 2=>"G", 4=>"H" ); print("array_merge\n"); $c = array_merge( $a, $b ); foreach( $c as $k=>$v ) print("$k => $v\n"); print("\n足し算\n"); $d = $a + $b; foreach( $d as $k=>$v ) print("$k => $v\n");
array_merge
PHP: 配列演算子 - Manual
array_merge($a,$b) によるマージは 配列を上書きするイメージ
連想配列は すでにあるキーは上書きされ、添え字が数字のやつは添え字を振りなおされる
$list[] = $hoge; されるイメージが一番近い
array_merge HOGE => A ← $a['HOGE'] PIYO => TEST ← $b['PIYO'] 0 => C ← $a[0] 1 => D ← $a[4] 2 => E ← $b[0] FUGA => F ← $b['FUGA'] 3 => G ← $b[2] 4 => H ← $b[4]
結合
PHP: 配列演算子 - Manual
$a + $b によるマージは 最初からある配列を維持する
すでにあるキーは上書きされない、添え字が数字のやつも振りなおされずそのまま使う(そしてこれも重なっていれば上書きしない)
足し算 HOGE => A ← $a['HOGE'] PIYO => B ← $a['PIYO'] 0 => C ← $a[0] 4 => D ← $a[4] FUGA => F ← $b['FUGA'] 2 => G ← $b[2]