GOOGLE之后整理出以下办法:
一、for循环
最简单也是最直接的方法,用for循环来遍历数组。对于已知维数的数组可以判断,但如果是未知的多维数组,该怎么办?
二、implode();
用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子:
$arr= array(array(),array(),array());
$str = implode(‘,’,$arr);
if(empty($str)) echo “空”;
else echo “非空”;
很明显$arr是个含有三个空数组的二维数组,应该也算是空的,可是输出的确是非空。判断失败。
三、count();
$arr= array(“”,””,””);
echo count($arr);
四、in_array(”, $arr));
$arr= array(“d”,”s”,””);
echo in_array(”, $arr);
这个只能说明数组中有空的元素,不能证明数组是空的。很明显也不行。
五、empty();
这个cpyeh觉得跟前面几种方法差不多
$arr= array(“”,””,””);
if(empty($arr)) echo “空”;
else echo “非空”;
结果还是非空
六、用strlen(),没内容的话好象长度都为1
可以在以上例子上加一句print_r($arr);看看
《“PHP中判断一个数组是否为空?”》 有 5 条评论
看了最后还是没给出具体的解决办法, 但个人觉得上面的 这些方法在对具体情况的时候具体的应用。个人比较喜欢用empty判断 [握手]
<?php
function is_multiArrayEmpty($multiarray) {
if(is_array($multiarray) and !empty($multiarray)){
$tmp = array_shift($multiarray);
if(!is_multiArrayEmpty($multiarray) or !is_multiArrayEmpty($tmp)){
return false;
}
return true;
}
if(empty($multiarray)){
return true;
}
return false;
}
http://php.chinaunix.net/manual/en/function.empty.php
学习了,谢谢
很多时候,对于数组都是有预见性的。
学习了,我还是比较喜欢用数组长度来判断空数组