配列で存在しない位置のインデックスを参照したときに発生します。たとえば、要素が3つしかない配列の4番目の要素を出力しようとすると「Notice: Undefined offset…」というエラーメッセージが表示されます。
初歩的な原因として配列のインデックスが1から始まると勘違いしていることが考えられます。次の例では、3つの要素がある配列の3番目を表示しようとしていますが、「3」というインデックスは存在しないのでNoticeエラーになります。
<?php $ar = array("東京", "千葉", "神奈川"); echo $ar[3]; ?>
配列のインデックスは0から始まるので、この例では「echo $ar[2];」と変更すればエラーメッセージは表示されなくなります。
<?php $ar = array("東京", "千葉", "神奈川"); echo $ar[2]; ?>
○実行結果
神奈川
「Notice: Undefined offset」を含めて、よくあるPHPのエラーやミスは、こちらの本で紹介しています。参考にしてください。