Если вы не заботитесь об эффективности и больше заботитесь о простоте, вы можете использовать min
и array_map
без необходимости создавать новые функции.
(bool)min(array_map('is_numeric', array(1,2,3))); //true
(bool)min(array_map('is_numeric', array(1,"b",3))); //false
Кроме того, если вы думаете о процессе, как о поиске того, что не соответствует шаблону, вы можете переписать его немного чище.
!array_filter('is_not_numeric', array(1,2,3)); //true
!array_filter('is_not_numeric', array(1,"b",3)); //true