Raketenwilli: array_filter()?

Beitrag lesen

Die Liste der der Array-Funktionen von PHP ist einsehbar. Darin findet sich:

Dort lese ich:

iteriert über jeden Wert im Array array und übergibt diesen der Callbackfunktion callback. Gibt die Funktion callback true zurück, so wird der aktuelle Wert von array in das Ergebnis-Array geschrieben.

Dann musst Du aus dem Ergebnis-Array nur noch das letzte Element holen. Das geht bequem mit array_shift( array_reverse( ) ):

$last = array_shift( 
  array_reverse( 
     array_filter( ... )
  ) 
);

Alternativ kannst Du auch ganz stumpf und einfach mit foreach iterieren, das jeweilige Element untersuchen und, wenn es passt, das Element als temporäres Ergebnis übernehmen. Wenn das foreach alles durchgehechelt hat, ist Dein temporäres Ergebnis das Endergebnis. Ja: Das ist so einfach, wie es klingt.

  • Würdest Du beim ersten Fund abbrechen, dann hättest etwas analoges zu „array.findFirst()“.
  • Oder Du brichts beim ersten Fund ab, machst das aber mit dem revertierten Array. Dann hast Du auf eine teure Weise aus „array.findFirst()“ „array.findLast()“ gemacht.

Ich verwette meinen Popo, dass Java letztendlich auch nichts anderes als etwas von obigem macht.

Es muss nicht für jeden „selten benutzten Mist“ eine fertige Funktion geben. Sonst hat man so viele Funktionen, dass keiner mehr die „richtige“ kennt und erst recht keiner mehr aus dem Hut sagen kann, wie es denn mit der Performance aussähe, wenn man denn statt diesem jenes tue.