sto loop un array bidimensionale come questo:PHP Avviso: undefined indice quando il ciclo di matrice
if (!empty($aka)) {
foreach ($aka as $ak) {
if($ak["lang"]=="es") {
$sptitle=$ak["title"];
}
}
}
Abbastanza semplice. Se l'array ($ aka) non è vuoto, lo faccio attraverso e quando scopre che l'indice "lang" è uguale a "es", salvo solo il valore "title" per quell'indice in $ sptitle.
Il problema è che la matrice ($ aka) contiene molte informazioni e talvolta non esiste l'indice "lang" ... e ottengo questo errore: Avviso: indice indefinito: lang.
Come posso risolvere questo ???
Questo è un estratto della matrice per aiutarti a capire. Si noti che [1] non ha un indice [lang] ma [2] ha:
[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"
)
Grazie!
Io personalmente preferisco array_key_exists, ma l'uso isset specificamente perché è (sorprendentemente) un Molto più veloce http://us.php.net/manual/en/function.array-key-exists.php#82867 – enobrev
Um, isset ($ ak ['lang']) continuerà a generare un E_NOTICE di indice non definito. array_key_exists() non lo farà. – cletus
isset non solleverà un avviso, provalo. –