Ich möchte ein Array aufteilen:
$o = json_decode('[{"id":"1","color":"green"},{"id":"2","color":"green"},{"id":"3","color":"yellow"},{"id":"4","color":"green"}]');
basierend auf dem Farbattribut jedes Elements und die entsprechenden Unterarrays füllen
$a = array("grün", "gelb", "blau");
function isGreen($var){
return($var->color == "grün");
}
$greens = array_filter($o, "isGreen");
$yellows = array_filter($o, "isYellow");
// und alle möglichen Kategorien in $a..
Mein $a
hat eine Länge > 20 und könnte sich weiter erhöhen, daher benötige ich eine generelle Methode anstelle von Funktionen, die von Hand geschrieben werden
Es scheint keine Funktion array_split zu geben, um alle gefilterten Arrays zu erzeugen
sonst benötige ich vielleicht eine Art Lambda-Funktion
0 Stimmen
Also, du möchtest eine Funktion für jeden Wert in
$a
? Oder verstehe ich es falsch?0 Stimmen
Entschuldigung, was ist falsch an einer Schleife? Das Generieren anonymer Funktionen scheint hier wie eine übermäßige Komplikation...
2 Stimmen
Wäre es nicht schlauer, die Funktion isColour() zu verwenden?
0 Stimmen
Möchtest du alle Artikel erhalten, deren Farbe grün ist?
0 Stimmen
@Dagon in der Tat, scheinen die Antworten das zu tun.
0 Stimmen
Ja, auch wenn sie alle Farbe falsch schreiben ;-)
0 Stimmen
@Dagon ich sehe, was du dort gemacht hast.