检查空数组时未定义的偏移量

时间:2014-02-08 08:45:24

标签: php

我有一个这样的数组我想删除最后一个没有任何值的数组

我使用了数组过滤器,但它不过滤后应该过滤数组

仅获得0,1,2。

$res_arr= array(
    0=>array(1,2,3,6,7),
    1=>array(7,5,3,8),
2=>array(6,5,9,8),
3=>array(),
);

$array1=array();

foreach($res_arr as $array_key=>$array_item)
{
  if($array1[$array_key] == 0)
  {
    unset($array1[$array_key]);
  }
}

 print_r($array1);

以上代码我得到了 未定义的偏移量:0 未定义的偏移量:1 未定义的偏移量:2

2 个答案:

答案 0 :(得分:4)

使用array_filter

$res_arr= array(
    0=>array(1,2,3,6,7),
    1=>array(7,5,3,8),
    2=>array(6,5,9,8),
    3=>array(),
);
$r = array_filter($res_arr, function($v) { return !empty($v); });
print_r($r);

答案 1 :(得分:2)

捷径方法。

$new_arr=array_filter($res_arr,'count');
print_r($new_arr);

Demo


很长的路..

你可以这样吗

<?php
$res_arr= array(
    0=>array(1,2,3,6,7),
    1=>array(7,5,3,8),
    2=>array(6,5,9,8),
    3=>array(),
);

$i=0;
foreach($res_arr as $arr)
{
    if(count($arr)==0)
    {
        unset($res_arr[$i]);
    }
    $i++;
}
print_r($res_arr);

<强> OUTPUT :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 6
            [4] => 7
        )

    [1] => Array
        (
            [0] => 7
            [1] => 5
            [2] => 3
            [3] => 8
        )

    [2] => Array
        (
            [0] => 6
            [1] => 5
            [2] => 9
            [3] => 8
        )

)