我有这样的数组结构:
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数组函数..那么欢迎提出建议.. < / p>
答案 0 :(得分:2)
请使用unset($index);
从数组中删除项目
请注意,在上述情况下,索引保持不变。
否则
如果您想要归一化整数键,可以使用 array_splice()
。另一种选择是在array_values()
unset()
答案 1 :(得分:1)
试试这个。
$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
从数组中删除'-'
。< / p>
尝试复制我的代码然后在你身边运行它。我添加了变量值。
答案 2 :(得分:0)
尝试
foreach ($main_arr as &$arr) {
$arr = array_filter($arr);
}
答案 3 :(得分: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
)
)