phpのforeach文とか

foreach文とか

foreachで2次元配列を扱おうとしてエラーが出ました

foreach($array as $value){	//$arrayは2次元配列
  echo $array[$value][0];	//適当な2次元配列の処理
}

こんな感じの記述をすると思ったように動作せずに

Warning: Invalid argument supplied for foreach()

とWarningが出ました。
考えてみると根本的に記述がおかしいですね。

訂正

foreach($array as $key => $value){	//$arrayは2次元配列
  echo $array[$key][0];	//適当な2次元配列の処理
}

と記述したところ動作はきちんとしているのですが
Warningは消えませんでした。ちゃんと調べてみたところ

Warning: Invalid argument supplied for foreach()

とは、「きちん配列を割り当ててるのかー?」的な警告らしいです。
どうもきちんと配列の中身を定義していない場合に出る模様。
なので配列かどうかを判定して実行してやります。

if (is_array($array)) {
  foreach($array as $key => $value){	//$arrayは2次元配列
    echo $array[$key][0];	//適当な2次元配列の処理
  }
}

これでうまく出来ました。

カテゴリー: javascript, php

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*