Tôi lặp một mảng hai chiều như thế này:PHP Notice: Undefined index khi Looping mảng
if (!empty($aka)) {
foreach ($aka as $ak) {
if($ak["lang"]=="es") {
$sptitle=$ak["title"];
}
}
}
Khá đơn giản. Nếu mảng ($ aka) không trống rỗng, tôi lặp lại máng và khi nó thấy rằng chỉ mục "lang" bằng "es" tôi chỉ lưu giá trị "title" cho chỉ mục đó trong $ sptitle.
Vấn đề là mảng ($ aka) chứa nhiều thông tin và đôi khi không có chỉ mục "lang" ... và tôi nhận được lỗi này: Thông báo: Chỉ mục không xác định: lang.
Làm cách nào để khắc phục sự cố này ???
Đây là trích xuất của mảng để giúp bạn hiểu. Lưu ý rằng [1] không có chỉ mục [lang] nhưng [2] có:
[1] => Array
(
[title] => "The Lord of the Rings: The Motion Picture"
[year] => ""
[country] => "USA"
[comment] => "promotional title"
)
[2] => Array
(
[title] => "Señor de los anillos: La comunidad del anillo, El"
[year] => ""
[country] => "Argentina"
[comment] => "Chile, Mexico, Peru, Spain"
[lang] => "es"
)
Cảm ơn!
Cá nhân tôi thích array_key_exists, nhưng việc sử dụng isset đặc biệt bởi vì nó (ngạc nhiên) một LOT nhanh hơn http://us.php.net/manual/en/function.array-key-exists.php#82867 – enobrev
Um, isset ($ ak ['lang']) sẽ vẫn tăng E_NOTICE của chỉ mục không xác định. array_key_exists() sẽ không. – cletus
isset sẽ không tăng thông báo, hãy thử. –