Ich Looping ein zweidimensionales Array wie folgt:PHP Notice: Undefined index, wenn Array Looping
if (!empty($aka)) {
foreach ($aka as $ak) {
if($ak["lang"]=="es") {
$sptitle=$ak["title"];
}
}
}
Ziemlich einfach. Wenn das Array ($ aka) nicht leer ist, schlinge ich es durch und wenn es feststellt, dass der "lang" Index gleich "es" ist, speichere ich einfach den "title" Wert für diesen Index in $ sptitle.
Das Problem ist, dass das Array ($ aka) enthält eine Menge von Informationen und manchmal gibt es keine "lang" Index ... und ich bekomme diesen Fehler: Hinweis: Undefinierter Index: lang.
Wie kann ich das reparieren ???
Dies ist ein Auszug aus dem Array zum besseren Verständnis. Beachten Sie, dass [1] keinen [lang] Index hat, aber [2] hat:
[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"
)
Vielen Dank!
ich persönlich array_key_exists bevorzugen, aber die Verwendung isset speziell, weil es (überraschend) ein LOT schneller http://us.php.net/manual/en/function.array-key-exists.php#82867 – enobrev
Um, isset ($ ak ['lang']) wird immer noch eine E_NOTICE von undefinierten Index. array_key_exists() wird nicht. – cletus
isset wird keine Benachrichtigung auslösen, versuchen Sie es. –