元祖若手のプログラミング奮闘記

元祖若手の奮闘記。主にメモ

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
)

これでオッケー
もう値はあってるのになんで。。。
みたいなことはなくなるかと