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>
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>
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>
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!