Hallo Leute,
ich möchte gerne in PHP Daten aus einem größeren Array filtern, ähnlich wie SQL's "SELECT x FROM y WHERE z". Die Daten sind folgendermaßen organisiert:
$a = array(
array("category" => "foo", ...),
array("category" => "bar", ...),
array("category" => "foo", ...),
...
);
array_filter sieht recht vielversprechend aus, wenn ich z.B. nur nach einer einzelnen Kategorie filtern möchte:
function filterCategory ($a, $category) {
return array_filter($a, create_function('$data',
"return $data['category'] == '$category';"
));
}
Probleme krieg ich allerdings, wenn $category eine Liste sein soll, die mehrere erlaubte Kategorien enthält (als Array). Ich müßte für die Callbackfunktion entweder dieses Array in einen String zerlegen, der die Einzelbedingungen ODER-verknüpft oder das Array irgendwie anders serialisieren.
Ich kann die ganze Funktion natürlich auch ohne array_filter realisieren, indem ich einfach von Hand alle Arrayelemente aussortiere. Kein Problem! Mich würde aber generell interessieren, wie/ob man array_filter für solch komplizierte Fälle benutzen kann.
Viele Grüße,
Alex