这是多维数组,我想删除其中的空数组。
$exclude1=array(
array(
[0] => Last Updated: Thu Apr 21 17:03:23 2016 PST
)
Array
(
[0] =>
)
Array
(
[0]=>
)
Array
(
[0] => MODEL: MODEL_NC
)
)
我想删除空数组。我试过这个:
$exclude1=array_filter(array_map('array_filter', $exclude1));
但它不起作用。
答案 0 :(得分:1)
您当前的数组值如下:
$exclude1 = array(
array("Last Updated: Thu Apr 21 17:03:23 2016 PST"),
array(""),
array(""),
array("MODEL: MODEL_NC"),
);
查看当前数组的输出。它看起来像下面的那样:
echo "<pre>";
print_r($exclude1);
输出将是:
Array
(
[0] => Array
(
[0] => Last Updated: Thu Apr 21 17:03:23 2016 PST
)
[1] => Array
(
[0] =>
)
[2] => Array
(
[0] =>
)
[3] => Array
(
[0] => MODEL: MODEL_NC
)
)
使用array_filter和array_map
$newArray = array_filter(array_map('array_filter', $exclude1));
检查最终输出:
Array
(
[0] => Array
(
[0] => Last Updated: Thu Apr 21 17:03:23 2016 PST
)
[3] => Array
(
[0] => MODEL: MODEL_NC
)
因此它将从之前的多维数组中删除空数组。
第二路
function array_remove_null($array) {
foreach ($array as $key => $value)
{
if(is_null($value))
unset($array[$key]);
if(is_array($value))
$array[$key] = array_remove_null($value);
}
return $array;
}
第三种方式:
$arr = array_filter_recursive($arr);
$arr = array_filter($arr);
答案 1 :(得分:1)
在您的代码中,您错误地使用了array_filter,您可以检查其menual。
array array_filter(array $ array [,callable $ callback [,int $ flag = 0]])
所以你可以这样使用。
<?php
$exclude1=array(
['Last Updated: Thu Apr 21 17:03:23 2016 PST'],
[null],
[null],
['MODEL: MODEL_NC']
);
unset($exclude1[1][0]); //this make the array empty as you question.
unset($exclude1[2][0]);
var_dump($exclude1);
$exclude1=array_filter( $exclude1, function($v){return count($v) == 0 ? false : true;});
var_dump($exclude1);
和输出:
ei@localhost:~$ php test.php
array(4) {
[0]=>
array(1) {
[0]=>
string(42) "Last Updated: Thu Apr 21 17:03:23 2016 PST"
}
[1]=>
array(0) {
}
[2]=>
array(0) {
}
[3]=>
array(1) {
[0]=>
string(15) "MODEL: MODEL_NC"
}
}
array(2) {
[0]=>
array(1) {
[0]=>
string(42) "Last Updated: Thu Apr 21 17:03:23 2016 PST"
}
[3]=>
array(1) {
[0]=>
string(15) "MODEL: MODEL_NC"
}
}
答案 2 :(得分:0)
像这样使用array_filter
:
$exclude1=array_filter( $exclude1, function($v){return count($v) == 0 ? false : true;});
答案 3 :(得分:0)
要从数组中删除空数组,您应该可以这样做:
$newArray = array_filter($exclude1);
希望这有帮助!