php判断数组是否全为空的函数 这么写哪里有问题?
<?php
function fun($fun)
{
foreach($fun as $value)
{
if(is_array($value))
{
fun($value);
}
else
{ $value=$value.'1';
if(empty($value)==NULL)
{
return 1;
exit;
}
}
}
}
?>
补充:楼下的 如果是2维数组就判断不出来了 将你答案的$arr改成$arr=array(array('','',''),'','');你看看
追问:去掉赋值也不对
答案:$value=$value.'1';
if(empty($value)==NULL)
{
return 1;
exit;
}你这里出错了,你是先赋值后判断,那肯定得到的结果都是非空的咯
用empty函数
$arr=array("a");
if(!empty($arr))
{
echo "不为空";
}给你一个很简单的思路,你循环数组,把所有的值累加,然后来判断结果。
$a = array();
foreach($a as $v) $va = $a . "1";
var_dump($va);
这个$va是null的,所以这么判断来赋值是不靠谱的。
而且我感觉你的错误还可能出现在你函数内部自调用fun($value);的时候,我自己写的时候也在这里徘徊了半天。。。你比较下吧。
根据最后一个大哥的思路,稍微改一下:
function chk_array ($a) {
foreach ($a as $v) {
if (is_array($v)) {
if (count($v)) {if (!chk_array($v)) return false;}
}
else {
$v = trim($v);
if (!empty($v)) return false;
}
$i++;
}
return true;
}
$a = array("", "", array(), array(""));
var_dump(chk_array($a));
上一个:如何叫PHP支持GD库函数?为什么会出错啊?
下一个:PHP中有解析字符串计算的内置函数吗? - 技术问答