PHPの配列(array_diff)を甘くみていたらはまった
これは特殊なケースかなと思ったけど一応メモ。
PHPの配列を深く知らなかったがために
結構はまった。。
追加した処理が二つの配列を比較して
新たにデータを追加したり、削除するような機能を作りたいとする。
<?php $array1 = array("green", "red", "blue", "red"); $array2 = array("green", "yellow", "red"); $result = array_diff($array1, $array2); print_r($result); ?>
こちらの$resut変数をそのまま引数として渡すとこうなる
Array ( [1] => blue )
ここの添え字が [1] になっているのが
わかると思うが
添え字もしっかり [0] にして渡さないと
エラーになってしまうことがつい最近わかった
ってことで初期化
<?php $array1 = array("green", "red", "blue", "red"); $array2 = array("green", "yellow", "red"); $result = array_diff($array1, $array2); print_r(array_merge($result)); ?>
Array ( [0] => blue )
これでオッケー
もう値はあってるのになんで。。。
みたいなことはなくなるかと