PHP - obtenir toutes les clés d'un tableau qui commencent avec une certaine chaîne de caractères
J'ai un tableau qui ressemble à ceci:
array(
'abc' => 0,
'foo-bcd' => 1,
'foo-def' => 1,
'foo-xyz' => 0,
//...
)
Comment puis-je obtenir uniquement les éléments qui commencent par foo-
?
- Avoir un tableau avec des préfixes comme c'est une odeur de code. Extraire ces valeurs dans un objet à la tenue de ces valeurs ou au moins de faire le préfixe point à un tableau et ajouter les valeurs.
- Voir aussi: stackoverflow.com/questions/13766898/...
Vous devez vous connecter pour publier un commentaire.
Approche fonctionnelle:
Ramasser un
array_filter_key
sorte de fonction à partir des commentaires dans http://php.net/array_filter ou écrire votre propre. Alors que vous pourriez faire:Approche procédurale:
Approche procédurale à l'aide d'objets:
array_filter()
, que vous pouvez utiliser au lieu de fournir une coutumearray_filter_key()
fonction.C'est la façon dont je le ferais, si je ne peux pas vous donner de plus efficace conseils avant de comprendre ce que vous voulez faire avec les valeurs que vous obtenez.
foreach ($array as $key => $value) { if (0 === strpos($key, 'foo-')) { ...use the $value... } }
À partir de PHP 5.3, vous pouvez utiliser le
preg_filter
fonction: iciSimplement j'ai utilisé
array_filter
fonction pour trouver la solution comme suitSortie
Pour vivre vérifier https://3v4l.org/lJCse
Modification eriscos'approche Fonctionnelle,
cela a fonctionné pour moi.
En plus de @Suresh Velusamy la réponse ci-dessus (qui a besoin au moins PHP 5.6.0) vous pouvez utiliser les éléments suivants si vous êtes sur une version antérieure de PHP:
$key => $value
paire. Il est indiqué dans la sortie de cette réponse, mais n'était pas encore mentionné explicitement