从 PHP 中的多维数组中删除包含空值的整个子数组


Removing the entire subarray that contains a null value from multidimensional array in PHP

拥有这种简单的数组:

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