检查数组中的所有值是否都是 int


Check if all value's in a array are int

找不到执行此操作的方法,但我正在寻找一种方法来检查数组中的所有值是否都是 INT,如果不是,它应该返回 false。

请注意,我无法清理该值!

// the idea
$good = array(1,2,3,4);
$bad  = array(1,2,'no',4);
if($good){
   echo 'works';
}else{
   echo 'failed';
}
array_reduce($arr, function ($result, $item) { return $result && is_int($item); }, true)

如果你有一些函数式编程原语,你可以做:

if (every($arr, 'is_int')) ..

这是一个你可以使用的可重用函数,如果数组的任何元素不是 int,它将返回 false。

$bad  = array(1,2,'no',4);
CheckArray($bad);


function checkArray($array){
foreach($array as $value){
 if( ! is_int($value)){
    return false;
  }
 }
return true;
}
$bad  = array(1,2,'no',4);
foreach($bad as $value){
    if( ! is_int($value)){
        echo 'bad';
    }
}