Heim >Backend-Entwicklung >PHP-Tutorial >Wie filtere ich Array-Elemente nach Schlüsselpräfix in PHP?
Array-Elemente nach Schlüsselpräfix filtern
Wie kann man bei einem gegebenen Array mit Schlüsseln und Werten alle Elemente entfernen, deren Schlüssel nicht mit beginnen? eine bestimmte Zeichenfolge? Zum Beispiel mit dem folgenden Array:
<code class="php">array( 'abc' => 0, 'foo-bcd' => 1, 'foo-def' => 1, 'foo-xyz' => 0, // ... )</code>
Das Ziel besteht darin, nur die Elemente beizubehalten, deren Schlüssel mit „foo-“ beginnen.
Funktioneller Ansatz:
Mit der Funktion array_filter können Sie das Array filtern und nur die gewünschten Elemente beibehalten:
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
Prozeduraler Ansatz:
Alternativ ein prozeduraler Ansatz kann verwendet werden:
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
Prozeduraler Ansatz mit Objekten:
Mithilfe eines Iterators kann man das Array auch filtern:
<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>
Das obige ist der detaillierte Inhalt vonWie filtere ich Array-Elemente nach Schlüsselpräfix in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!