Eine noch allgemeinere Variante wäre eine Implementierung von array_search mit einer Callback-Funktion; das lass ich jetzt mal 😀
Es gibt mit array_filter bereits eine Variante dieser Funktion. Sie gibt nicht nur das erste gefundene Elemente zurück, sondern alle passenden Elemente. Von da aus ist ein Leichtes an das erste Element zu kommen.