【PHP】Undefined array keyエラーの原因・改善方法

foeachを使って配列から値を取り出す処理を実行したが、【Undefined array key】エラーが出てうまく機能しない。
本記事ではこのような悩みを解決。
エラーの原因と改善方法について解説します。
エラーの原因・サンプルコード
<?php
// 配列
$array = array(1,2,3);
for($i=0; $i<4; $i++){
echo $array[$i]."\n";
}
?>
【Undefined array key】エラーの原因は、配列から存在しないkeyを指定した時に起こる現象です。
上記サンプルコードを例に説明します。
配列からfor文を使って値を取り出す処理をしていますが、条件式が最大4までループさせる処理をしてるのに対し、取り出す配列の要素数が3つしかありません。
したがって4つ目のループ処理の際に、配列に存在しないkeyを指定する事になりエラーがでます。
エラーの改善・サンプルコード
<?php
// 配列
$array = array(1,2,3);
for($i=0; $i<4; $i++){
if(isset($array[$i])){
echo $array[$i]."\n";
}
}
?>
【Undefined array key】エラーの改善方法としては、isset関数を使うと便利です。
isset関数は値がNull(空)ではない場合はtrueを返す処理をしてくれます。
if文とisset関数を使い以下条件式をたてます。
if(isset(配列キー)){ 配列キーがあった場合の処理; }
上記コードを組む事で、空の場合は出力しないという条件式が成り立ち、エラーを改善できます。
まとめ
配列キーに限らず、値が空の場合は予期せぬエラーが起こり得るので、その場合isset関数を使うと改善できるかもしれません。
以上で解説を終わります。
目次