PHP怎么删除二维数组的空数组 150

$A[0][1]=$B[0];$A[1][1]=$B[1];$A[2][1]=$B[2];$A[3][1]=$B[3];$A[4][1]=$B[4];......$A[0... $A[0][1] =$B[0];
$A[1][1] =$B[1];
$A[2][1] =$B[2];
$A[3][1] =$B[3];
$A[4][1] =$B[4];
......

$A[0][2] =$C[0];
$A[1][2] =$C[1];
$A[2][2] =$C[2];
$A[3][2] =$C[3];
$A[4][2] =$C[4];
......
如果取出的$B和$C的值为空,怎么删除相对应的$A?
展开
 我来答
IT互联天下
2015-06-30 · 知道合伙人软件行家
IT互联天下
知道合伙人软件行家
采纳数:1437 获赞数:5161
PHP开发工程师

向TA提问 私信TA
展开全部

PHP 删除空数组常用解决方案:

  1. 利用foreach循环判断来删除为空的数组,注意:如果数组元素非常多的时候,使用循环处理效率会降低。示例如下:

    <?php
    //定义数组
    $arr=array(
            "id"=>1,
            "name"=>"zhidao",
            "url"=>""
            );

    //循环判断
    foreach($arr as $k=>$v){
        
        if(!$v){//判断是否为空(false)
            unset($arr[$k]);//删除
        }
    }
    print_r($arr);//Array ( [id] => 1 [name] => zhidao )
    ?>
  2. 使用array_filter函数删除。array_filter是利用回调函数来对数组进行过滤,如果没有回调函数,那么默认就是删除数组中值为false的元素。示例如下:

    <?php
    //定义数组
    $arr=array(
            "id"=>1,
            "name"=>"zhidao",
            "url"=>""
            );


    //array_filter函数对数组进行过滤
    $newArr=array_filter($arr);

    print_r($newArr);//Array ( [id] => 1 [name] => zhidao )
    ?>
白喵小鱼
2013-11-20
知道答主
回答量:18
采纳率:0%
帮助的人:3.9万
展开全部

既然已经知道是二维数组了,那就好办了

foreach($A as $k=>$v){
$A[$k] = array_filter($v);
}

说明: http://us3.php.net/manual/zh/function.array-filter.php

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a348876412
2013-11-20 · TA获得超过136个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:233万
展开全部

给你个函数吧,N维数组去空值:

$a = array (array (), array (array (), 1, 2));
echo '<pre>';
print_r(array_no_empty($a));
exit();
function array_no_empty($arr) {
    if (is_array($arr)) {
        foreach ( $arr as $k => $v ) {
            if (empty($v)) unset($arr[$k]);
            elseif (is_array($v)) {
                $arr[$k] = array_no_empty($v);
            }
        }
    }
    return $arr;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你以为你以为de
2015-05-22 · 知道合伙人软件行家
你以为你以为de
知道合伙人软件行家
采纳数:503 获赞数:1339
某培训机构毕业,大专学位。工作2年,喜欢百度知道答题,可以互相学习共通过进步。

向TA提问 私信TA
展开全部
$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));  
print_r($array2D);  
print_r(unique_arr($array2D,true));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-08-22
展开全部
<?php
$A = array_filter($A, function($v){
    $result = true;
    foreach($v as $v2) {
        if (!$v2) {
            $result = false;
            break;
        }
    }
    return $result;
});

var_dump($A);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式