Warning: Invalid argument supplied for foreach()の警告。
simplexml_load_file()関数を使って結果をforeachでループさせる時に良く出る。
理由はforeachに配列じゃない変数を与えているから。
simplexml_load_file()関数を使ってAPIからの戻りをパースするときforeachの多重ループで処理をする事が多いのだけど、APIからの戻りの配列が多次元になっていてそれを良く見ないでforeachに突っ込んでるから。
$arr = array(
0 => array(1,2,3),
1=> '4'
2=>array(5,6,7,8,9)
);
この$arrをforeachの2重ループでまわすと$arr[1]が配列じゃないので警告が出る。
なのでforeachで回す前にis_array()関数を使って配列のときだけforeachするようにする。
[0回]
PR