Heim > Backend-Entwicklung > PHP-Tutorial > Wie filtere ich ein Array basierend auf dem Schlüsselpräfix in PHP?

Wie filtere ich ein Array basierend auf dem Schlüsselpräfix in PHP?

DDD
Freigeben: 2024-10-29 21:54:29
Original
933 Leute haben es durchsucht

How to Filter an Array Based on Key Prefix in PHP?

Filtern von Array-Elementen basierend auf dem Schlüsselpräfix

Bei einem Array mit Schlüsseln, die einem bestimmten Muster folgen, kann es erforderlich sein, nur selektiv beizubehalten die Elemente, die bestimmte Kriterien erfüllen. In diesem Fall möchten wir ein Array filtern und nur Elemente behalten, deren Schlüssel mit einer bestimmten Zeichenfolge beginnen, z. B. „foo-“.

Funktioneller Ansatz

Zu Um dies mit einem funktionalen Ansatz zu erreichen, besteht eine Möglichkeit darin, die Funktion array_filter() in Verbindung mit einem benutzerdefinierten Rückruf zu verwenden. Die Callback-Funktion untersucht jeden Schlüssel und gibt true zurück, wenn er mit „foo-“ beginnt. Die Funktion array_filter() filtert dann das Array basierend auf dieser Bedingung und behält nur die passenden Schlüssel bei.

<code class="php">$array = array_filter($array, function($key) {
    return strpos($key, 'foo-') === 0;
}, ARRAY_FILTER_USE_KEY);</code>
Nach dem Login kopieren

Prozeduraler Ansatz

Ein prozeduraler Ansatz beinhaltet das manuelle Durchlaufen das Array. Für jeden Schlüssel prüfen wir, ob er mit „foo-“ beginnt, und wenn ja, fügen wir das Schlüssel-Wert-Paar zu einem neuen Array hinzu.

<code class="php">$only_foo = array();
foreach ($array as $key => $value) {
    if (strpos($key, 'foo-') === 0) {
        $only_foo[$key] = $value;
    }
}</code>
Nach dem Login kopieren

Prozeduraler Ansatz unter Verwendung von Objekten

Ein weiterer prozeduraler Ansatz besteht darin, einen ArrayIterator zu verwenden, um über das Array zu iterieren. Dieser Ansatz ermöglicht uns den Zugriff sowohl auf den Schlüssel als auch auf den Wert für jedes Element. Wir filtern das Array manuell, indem wir prüfen, ob jeder Schlüssel mit „foo-“ beginnt, und passende Elemente zu einem neuen Array hinzufügen.

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array basierend auf dem Schlüsselpräfix in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage