键入检查所有数组元素

Dio*_*ves 10 php arrays types

有没有简单的方法来检查数组的所有元素是否是特定类型的实例而不循环所有元素?或者至少是从数组中获取X类型的所有元素的简单方法.

Ant*_*ney 5

如果不检查所有数组元素,则无法实现此目的,但您可以使用内置数组函数来帮助您.

您可以使用array_filter返回数组.您需要提供自己的回调函数作为检查特定类型的第二个参数.这将检查阵列的数字是否均匀.

function even($var){
  return(!($var & 1));
}

// assuming $yourArr is an array containing integers.
$newArray = array_filter($yourArr, "even");
// will return an array with only even integers.
Run Code Online (Sandbox Code Playgroud)

根据VolkerK的评论,从PHP 5.3+开始,你也可以传入一个匿名函数作为你的第二个参数.这与上面的例子相同.

$newArray = array_filter($yourArr, function($x) { return 0===$x%2; } );
Run Code Online (Sandbox Code Playgroud)

  • 使用php 5.3+,你也可以使用匿名函数`$ newArray = array_filter($ yourArr,function($ x){return 0 === $ x%2;});` (2认同)

gho*_*g74 5

$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";
}
Run Code Online (Sandbox Code Playgroud)