Php 如果所有子数组都是确定值,则递归删除子数组

Php 如果所有子数组都是确定值,则递归删除子数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我需要删除所有值为0的月份,只有当所有值都匹配0时才能删除 这是我的阵列 Array ( [0] => Array ( [0] => Month/Year [1] => BRO002 [2] => SPI001 [3] => TYN001 ) [1] => Array ( [0

我需要删除所有值为0的月份,只有当所有值都匹配0时才能删除

这是我的阵列

Array
(
    [0] => Array
        (
            [0] => Month/Year
            [1] => BRO002
            [2] => SPI001
            [3] => TYN001
        )

    [1] => Array
        (
            [0] => Jan
            [1] => 0
            [2] => 0
            [3] => 1
        )

    [2] => Array
        (
            [0] => Feb
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [3] => Array
        (
            [0] => Mar
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [4] => Array
        (
            [0] => Apr
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [5] => Array
        (
            [0] => May
            [1] => 0
            [2] => 3
            [3] => 0
        )

    [6] => Array
        (
            [0] => Jun
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [7] => Array
        (
            [0] => Jul
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [8] => Array
        (
            [0] => Aug
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [9] => Array
        (
            [0] => Sep
            [1] => 11
            [2] => 1
            [3] => 2
        )

    [10] => Array
        (
            [0] => Oct
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [11] => Array
        (
            [0] => Nov
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [12] => Array
        (
            [0] => Dec
            [1] => 0
            [2] => 0
            [3] => 0
        )

)
上面的数组将变成以下数组:

Array
(
    [0] => Array
        (
            [0] => Month/Year
            [1] => BRO002
            [2] => SPI001
            [3] => TYN001
        )

    [1] => Array
        (
            [0] => Jan
            [1] => 0
            [2] => 0
            [3] => 1
        )

    [5] => Array
        (
            [0] => May
            [1] => 0
            [2] => 3
            [3] => 0
        )

    [9] => Array
        (
            [0] => Sep
            [1] => 11
            [2] => 1
            [3] => 2
        )

)
谢谢。

检查每个值:

$newArray = array();
foreach($array as $key => $val){
    if(!(!$val[1] && !$val[2] && !$val[3])) {
        $newArray[$key] = $array[$key];
    }
}

print_r($newArray);

无需第二个数据结构:

foreach ( $data as $i => $month ) {
  if ( $i == 0 ) { continue; }
  if (
    $month[1] == 0 &&
    $month[2] == 0 &&
    $month[3] == 0 
  ) {
    unset($data[$i]);
  } 
} 

StackOverflow不是一个众包代码生成器。你试过什么?
$array = array(
    array('Jan', 0, 0, 1), 
    array('Feb', 0, 1, 0), 
    array('Mar', 0, 0, 0), 
    array('Apr', 1, 1, 1)
);

foreach($array as $i => $a) {
    $save = false;
    foreach($a as $k => $v) {
        if($k == 0) continue; 
        if($v != 0) $save = true; 
    }
    if(!$save) unset($array[$i]);
}

var_dump(array_values($array));
foreach ( $data as $i => $month ) {
  if ( $i == 0 ) { continue; }
  if (
    $month[1] == 0 &&
    $month[2] == 0 &&
    $month[3] == 0 
  ) {
    unset($data[$i]);
  } 
}