Je dois donc renvoyer le nombre (6, 8 ou 10) avec la valeur du pays.
Donc, dans l'exemple, avec 'sweden', il est supposé retourner 8 mais la clé du tableau est apparemment juste Array (). Est-ce que la structure de mon tableau ou l'utilisation de array_keys?
$list= array (
'list' =>
array (
6 =>
array (
'default',
'finland'
),
8 =>
array (
'sweden',
'norway'
),
10 =>
array (
'germany',
'belgia'
),
),
);
print_r(array_keys($list, "sweden"));
return: Array()
3 Réponses :
Vous avez deux problèmes.
Premièrement, le tableau que vous souhaitez rechercher est $ list ['list'] , pas $ list lui-même. p >
Deuxièmement, le deuxième argument de array_keys () n'est utile que pour les tableaux à 1 dimension. Vous avez un tableau à 2 dimensions, mais array_keys () ne cherchera pas automatiquement à l'intérieur des tableaux imbriqués. Vous devez donc écrire votre propre boucle ou utiliser array_filter().
$results = array();
foreach ($list['list'] as $key => $value) {
if (array_search('sweden', $value) !== false) {
$results[] = $key;
}
}
print_r($results);
Je reçois une erreur d'analyse: erreur de syntaxe, "as" inattendu, dois-je modifier quelque chose?
Doit être foreach , pas for
utilisez foreach pour cela.
foreach ($list as $key => $value){
}
Double possible de PHP Multidimensional Array Searching (Trouver la clé par valeur spécifique)
n'a pas l'air d'être
Quoi? utilisez la réponse acceptée qui fonctionne;)
arrray_keysne fonctionne pas très bien avec les tableaux multidimensionnels.dans cette question, c'est un tableau associatif et recherche un «slug» avec une valeur de slugs, c'est différent