拥有这种简单的数组:
array(3) {
[0]=
array(5) {
[0]=
string(61) "ramdom test"
[1]=
string(7) "19"
[2]=
string(7) "-99"
[3]=
string(6) "ramdom test"
[4]=
string(31) "ramdom test"
}
[1]=
array(5) {
[0]=
string(61) "ramdom test 2"
[1]=
string(7) "87"
[2]=
string(7) "-42"
[3]=
string(6) "NULL" // <--------------------------- THIS HAS A NULL VALUE
[4]=
string(31) "ramdom test 2"
}
[2]=
array(5) {
[0]=
string(61) "ramdom test 3"
[1]=
string(7) "54"
[2]=
string(7) "-67"
[3]=
string(6) "ramdom test 3"
[4]=
string(31) "ramdom test 3"
}
}
我想删除包含 NULL
值的整个子数组,在这种情况下,[1]
数组的键[3]
为 null,那么我想如何删除整个 [1]
数组以便我可以获得以下所需的输出?
array(2) {
[0]=
array(5) {
[0]=
string(61) "ramdom test"
[1]=
string(7) "19"
[2]=
string(7) "-99"
[3]=
string(6) "ramdom test"
[4]=
string(31) "ramdom test"
}
[1]=
array(5) {
[0]=
string(61) "ramdom test 3"
[1]=
string(7) "54"
[2]=
string(7) "-67"
[3]=
string(6) "ramdom test 3"
[4]=
string(31) "ramdom test 3"
}
}
我正在使用:
$myArray = array_map('array_filter', $myArray);
但这只删除了空项目,而不是整个子数组。
使用array_filter函数:
$result = array_filter($array, function($v){
return !in_array(null, $v, true);
});
# fix keys
$result = array_values($result);
更多详细信息: http://php.net/manual/en/function.array-filter.php