Moin,
für ein Projekt habe ich versucht, die Lambda Expressions aus C# .NET in PHP zu implementieren. Ich denke mal, dass es recht gut gelungen ist. ![]()
Ich bitte mal die PHP Fans hier im Forum um Feedback:
GitHub - perryflynn/PerrysLambda: Lambda expressions for PHP
PHP
<?php
use PerrysLambda\ObjectArray as OA;
use PerrysLambda\ArrayList as AL;
$data = json_decode(file_get_contents(__DIR__."/testdata.json"), true);
$collection = AL::asObjectArray($data);
$skiptake = $collection
// alle welche im useragent den Begriff "Android" enthalten
->where(function(OA $r) { return $r->agentScalar->contains('Android'); })
// doppelte Einträge anhand des useragent entfernen
->distinct(function(OA $r) { return $r->agent; })
// die ersten drei Einträge in der Liste löschen
->skip(3)
// die ersten 5 Einträge nehmen, den rest löschen
->take(5)
// sortieren nach "enthält den Begriff Linux"
// agentScalar ist ein shortcut für `->getScalar('agent')`
->order(function(OA $r) { return $r->agentScalar->contains('Linux') ? 1 : 0; })
// anschließend nach dem useragent sortieren
->thenBy(function(OA $r) { return $r->agent; })
// sortieren ausführen und ArrayList zurück geben
->toList();
$skiptake->each(function(OA $r) { var_dump($r->agent); });
Alles anzeigen
Danke. ![]()