use*_*841 3 php callback array-map
我想在php中使用数组映射中的empty().我收到的错误是它不是一个有效的回调.
$ cat test.php
<?
$arrays = array(
'arrEmpty' => array(
'','',''
),
);
foreach ( $arrays as $key => $array ) {
echo $key . "\n";
echo array_reduce( $array, "empty" );
var_dump( array_map("empty", $array) );
echo "\n\n";
}
Run Code Online (Sandbox Code Playgroud)
$ php test.php
arrEmpty
Warning: array_reduce(): The second argument, 'empty', should be a valid callback in /var/www/authentication_class/test.php on line 12
Warning: array_map(): The first argument, 'empty', should be either NULL or a valid callback in /var/www/authentication_class/test.php on line 13
NULL
Run Code Online (Sandbox Code Playgroud)
这不应该工作吗?
长话:我正试图(太?)聪明并检查所有数组值都不是空字符串.
尝试array_filter
没有回调:
如果没有提供回调,则将删除所有输入等于FALSE的条目(请参阅转换为布尔值).
然后,您可以使用count(array_filter($array))
它来查看它是否仍有值.
或者简单地将空包装成可调用的,如下所示:
array_reduce($array, create_function('$x', 'return empty($x);'));
Run Code Online (Sandbox Code Playgroud)
或者从PHP 5.3开始
array_reduce($array, function($x) { return empty($x); });
Run Code Online (Sandbox Code Playgroud)