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_keys
ne 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