Maison >développement back-end >tutoriel php >Comment filtrer un tableau en fonction du préfixe de clé en PHP ?
Filtrage des éléments du tableau en fonction du préfixe de clé
Étant donné un tableau avec des clés qui suivent un modèle spécifique, il peut être nécessaire de conserver sélectivement uniquement les éléments répondant à certains critères. Dans ce cas, nous visons à filtrer un tableau, en ne conservant que les éléments dont les clés commencent par une chaîne particulière, comme "foo-".
Approche fonctionnelle
Pour Pour y parvenir en utilisant une approche fonctionnelle, une option consiste à utiliser la fonction array_filter() en conjonction avec un rappel personnalisé. La fonction de rappel examine chaque clé et renvoie true si elle commence par "foo-". La fonction array_filter() filtre ensuite le tableau en fonction de cette condition, en préservant uniquement les clés correspondantes.
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
Approche procédurale
Une approche procédurale implique une itération manuelle le tableau. Pour chaque clé, nous vérifions si elle commence par "foo-", et si c'est le cas, nous ajoutons la paire clé-valeur à un nouveau tableau.
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
Approche procédurale utilisant des objets
Une autre approche procédurale consiste à utiliser un ArrayIterator pour parcourir le tableau. Cette approche nous permet d'accéder à la fois à la clé et à la valeur de chaque élément. Nous filtrons manuellement le tableau en vérifiant si chaque clé commence par "foo-" et en ajoutant les éléments correspondants à un nouveau tableau.
<code class="php">$i = new ArrayIterator($array); $only_foo = array(); while ($i->valid()) { if (strpos($i->key(), 'foo-') === 0) { $only_foo[$i->key()] = $i->current(); } $i->next(); }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!