php 检测数组内是否有空值,PHP如何判断多维数组中是否包含空值

这段代码展示了如何遍历一个多维数组并删除所有空值元素。通过使用`array_map`和`array_diff`函数,可以有效地筛选出非空值,并保留每个数组的第二个元素。最终结果是一个过滤后的数组,只包含非空值的键值对。
摘要由CSDN通过智能技术生成

$arr=array('listid'=>array('',5),'title'=>array('',38),'type'=>array('','我有'),'count'=>array('',3),'content'=>array('无','无'));foreach($arr as $k=>$v){if(is_array($v)){foreach($v as $v2){if($v2==''){unset($arr[$k]);}}}}echo "";print_r($arr);echo "

";/*Array( [content] => Array ( [0] => 无 [1] => 无 ))*/

我看你的意思 应该不是2楼回答的 ,你的数据结构是一个好像是 文章的 就是几个文章 是不是全部剔除 第一个数据 只留下 每一个的第二个键值呢

foreach循环数组,发现空值先让该行=null,然后unset掉

3楼就是我想表达的意思,在上面的例子中!就是保留第二个的键值,因为全部有值,该怎样实现呢

建议贴出你的数组和最后结果。并说明一下原理。

print_($_POST);

结果:

Array

(

[listid] => Array

(

[0] => 1

[1] => 5

[2] => 4

)

[title] => Array

(

[0] =>

[1] => 33

[2] => 39

)

[type] => Array

(

[0] => u

[1] => t

[2] =>

)

[count] => Array

(

[0] =>

[1] => 7

[2] =>

)

[content] => Array

(

[0] => 无

[1] => 无

[2] => 无

)

)

$arr=array( 'listid' => array('', 5), 'title' => array('', 38), 'type' => array('', '我有'), 'count' => array('', 3), 'content' => array('无','无'),);$t = call_user_func_array('array_map', array_merge(array(null), $arr));foreach($t as $k=>$v) if(array_diff($v, array('')) != $v) unset($t[$k]);$t = count($t) == 1 ? array_chunk(current($t), 1) : call_user_func_array('array_map', array_merge(array(null), $t));print_r(array_combine(array_keys($arr), $t));

Array( [listid] => Array ( [0] => 5 ) [title] => Array ( [0] => 38 ) [type] => Array ( [0] => 我有 ) [count] => Array ( [0] => 3 ) [content] => Array ( [0] => 无 ))

感谢版主回答!已经获得了想要的结果

现在是,如果$arr 中没有一组完整的值就会出错啊

谢谢,已经解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值