Ich habe ein Array, das so aussieht:
array(
'abc' => 0,
'foo-bcd' => 1,
'foo-def' => 1,
'foo-xyz' => 0,
// ...
)
Wie kann ich nur die Elemente erhalten, die mit beginnen foo-
?
php
arrays
array-filter
Alex
quelle
quelle
Antworten:
quelle
Funktionsansatz:
Nehmen Sie eine
array_filter_key
Art Funktion aus den Kommentaren in http://php.net/array_filter oder schreiben Sie Ihre eigene. Dann könnten Sie tun:Verfahrensansatz:
Verfahrensansatz unter Verwendung von Objekten:
quelle
array_filter()
, das Sie verwenden können, anstatt eine benutzerdefiniertearray_filter_key()
Funktion bereitzustellen .So würde ich es machen, obwohl ich Ihnen keinen effizienteren Rat geben kann, bevor ich nicht verstanden habe, was Sie mit den Werten tun möchten, die Sie erhalten.
quelle
foreach ($array as $key => $value) { if (0 === strpos($key, 'foo-')) { ...use the $value... } }
Ich habe einfach die
array_filter
Funktion verwendet, um die Lösung wie folgt zu erreichenAusgabe
Für Live-Check https://3v4l.org/lJCse
quelle
Ab PHP 5.3 können Sie die
preg_filter
Funktion verwenden: hierquelle
quelle
Änderung des Funktionsansatzes von erisco ,
das hat bei mir funktioniert.
quelle
Zusätzlich zu der obigen Antwort von @Suresh Velusamy (für die mindestens PHP 5.6.0 erforderlich ist) können Sie Folgendes verwenden, wenn Sie eine frühere Version von PHP verwenden:
quelle
$key => $value
Paar. Es ist in der Ausgabe dieser Antwort angegeben, wurde aber noch nicht explizit erwähnt