PHP检查是否有任何数组值不是字符串或数字?

RS7*_*RS7 5 php arrays string validation array-filter

我有一个值数组,我想检查所有值是字符串还是数字.最有效的方法是什么?

目前我只是检查字符串,所以我只是在做if (array_filter($arr, 'is_string') === $arr)这似乎工作.

Jef*_*ert 8

请参阅:PHP的is_string()is_numeric()函数.

结合使用array_filter,您可以比较两个数组,看它们是否相等.

function isStringOrNumeric($in) {
// Return true if $in is either a string or numeric
   return is_string($in) || is_numeric($in);
}

class Test{}

$a = array( 'one', 2, 'three', new Test());
$b = array_filter($a, 'isStringOrNumeric');

if($b === $a)
    echo('Success!');
else
    echo('Fail!');
Run Code Online (Sandbox Code Playgroud)


Vyk*_*tor 7

更有效的是:

function isStringNumberArray( $array){
  foreach( $array as $val){
    if( !is_string( $val) && !is_numeric( $val)){
      return false;
    }
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

这个方法:

  • 不会创建新的数组
  • 将在第一个无效值后停止