1

我有这样的数组结构:

Main-Array
(
    [0] => Sub-Array
    (
        [0] => AAA
        [1] => BBB
        [2] => -
        [3] => DDD
    )

    [1] => Sub-Array
    (
        [0] => 111
        [1] => 222
        [2] => -
        [3] => 444
    )
)

根据上面提到的示例,我想将Main-Array[0][2] 和 Main-Array[1][2]从数组中弹出,因为两者都是空的..

我知道通过执行foreach循环并根据要求分配一个新数组来做到这一点..但是如果有更好的方法或我不知道的任何PHP数组函数..那么欢迎提出建议..

4

4 回答 4

2

请用于unset($index); 从数组中删除项目

请注意,在上述情况下,索引保持不变。

别的

array_splice()如果您想标准化整数键,可以使用。另一种选择是使用array_values()afterunset()

于 2012-11-09T06:03:02.887 回答
2
$array_fill = array(array('AAA','BBB','-','DDDD'), array(111,222,'-',444));
function clean_now($var)
{
    return $var == '-'? false: true;    
}

function cleanme($var)
{
    return array_filter($var, "clean_now"); 
}

print_r(array_map("cleanme",$array_fill));

由于它是二维数组,我首先使用array_map过滤每个数组内部的数组,并从数组array_filter中删除'-'

尝试复制我的代码,然后在您身边运行它。我添加了变量值。

于 2012-11-09T06:25:21.210 回答
0
$a[]=array(DD,AA,'',1);
$a[]=array(mm,er,'',4);
foreach($a as $b)
{
    rsort($b);
    array_pop($b);
    $c[]=$b;
}
print_r($c);

因为你说两者都是空的,这是实现它的最简单方法之一,之后你的输出将如下所示

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => DD
            [2] => AA
        )

    [1] => Array
        (
            [0] => 4
            [1] => mm
            [2] => er
        )

)
于 2012-11-09T09:13:12.450 回答
0

尝试

foreach ($main_arr as &$arr) {
  $arr = array_filter($arr);
}
于 2012-11-09T06:00:48.040 回答