【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関数を使うと改善できるかもしれません。

以上で解説を終わります。

Ads

関連記事

PHP

【PHP】指定した値で配列を埋める方法【array_padを使おう】

2022.06.12
57
PHP

【簡単】phpを使って文字列内の全角スペースを半角スペースに変換・置換する方法

更新日:2022.04.04
116
PHP

【PHP】配列の値を複数の変数に代入する方法【list関数を使おう】

2022.06.14
50
PHP

【PHP】Notice: Undefined index エラーの原因・解決方法をご紹介【表示させない】

2022.06.01
80