Php 在所有数组元素中键入check
有没有简单的方法可以检查数组的所有元素是否都是特定类型的实例,而不循环所有元素?或者至少是一种从数组中获取所有X类型元素的简单方法 有没有一种简单的方法可以检查数组中的所有元素[某些东西]是否都不循环所有元素 不可以。如果不检查数组的所有元素,则无法检查数组的所有元素Php 在所有数组元素中键入check,php,arrays,types,Php,Arrays,Types,有没有简单的方法可以检查数组的所有元素是否都是特定类型的实例,而不循环所有元素?或者至少是一种从数组中获取所有X类型元素的简单方法 有没有一种简单的方法可以检查数组中的所有元素[某些东西]是否都不循环所有元素 不可以。如果不检查数组的所有元素,则无法检查数组的所有元素 虽然您可以使用array\u walk来节省自己编写样板文件的时间。如果不检查所有数组元素,就无法实现这一点,但您可以使用内置数组函数来帮助您 可以使用返回数组。您需要提供自己的回调函数作为第二个参数来检查特定类型。这将检查数组的
虽然您可以使用
array\u walk
来节省自己编写样板文件的时间。如果不检查所有数组元素,就无法实现这一点,但您可以使用内置数组函数来帮助您
可以使用返回数组。您需要提供自己的回调函数作为第二个参数来检查特定类型。这将检查数组的数字是否为偶数
根据VolkerK的评论,从PHP5.3+开始,您还可以传入一个匿名函数作为第二个参数。这与上述示例相同
$newArray = array_filter($yourArr, function($x) { return 0===$x%2; } );
您还可以将
array\u walk
与create\u函数
组合使用,并使用匿名函数筛选数组。这句话的大意是:
$filtered_array = array_filter($array, create_function('$e', 'return is_int($e)'))
我实际上使用了过滤器解决方案,因为这个答案改变了我的需求,这非常好!这实际上完全回答了最初的问题,对验证非常有用。谢谢。我认为gettype需要放在括号内。在PHP5.3+中,您还可以使用匿名函数
$newArray=array\u filter($yourArr,function($x){return 0===$x%2;})代码>第二个示例具有误导性。这意味着第一个示例中的偶数
函数的实现不能用于匿名函数。使用匿名函数的真正等价物是:$newArray=array_filter($yourArr,function($x){return(!($x&1));})
需要使用单引号,或用反斜杠转义$。在这种情况下,不需要创建函数:array\u filter($array,'is\u int')
。因为是int
返回一个布尔值,所以这就是您所需要的。。。
$filtered_array = array_filter($array, create_function('$e', 'return is_int($e)'))
$s = array("abd","10","10.1");
$s = array_map( gettype , $s);
$t = array_unique($s) ;
if ( count($t) == 1 && $t[0]=="string" ){
print "ok\n";
}