Written by Kasumi

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

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

目次

関連記事

PHP

PHPで現在日時を取得する方法

2023.04.05
639
PHP プログラミング

phpを使ってサイトのドメインを取得し、URLを出力する方法。

2021.06.14
7082
PHP

【PHP】動的にテキストファイルを読み込み。内容を出力する方法

2023.03.24
1503
PHP

【簡単】phpのforeachで指定回数ループしたらbreakし、抜ける方法

2022.02.22
11804