Php 如果所有子数组都是确定值,则递归删除子数组
我需要删除所有值为0的月份,只有当所有值都匹配0时才能删除 这是我的阵列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
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]);
}
}