La solución es buena, pero solamente resulta eficiente cuando el array contiene pocos elementos, pues cuando contiene muchos, que es lo común cuando se trabaja con BD, deja de serlo.
Por eso opté por no utilizar alguna estructura e ir directamente por las funciones nativas, porque, como alguna vez leí en este foro, este lenguaje no es muy eficiente que digamos.
Saludos