我有一大堆相同的子阵列,最小的例子可能是:
array(4) {
[0]=>
array(2) {
["id_product"]=>
string(4) "1372"
["quantity"]=>
int(0)
}
[1]=>
array(2) {
["id_product"]=>
string(4) "1373"
["quantity"]=>
int(1)
}
[2]=>
array(2) {
["id_product"]=>
string(4) "1374"
["quantity"]=>
int(2)
}
[3]=>
array(2) {
["id_product"]=>
string(4) "1375"
["quantity"]=>
int(0)
}
}
我的目标是创建一个新数组,排除quantity
等于int(0)
的子数组,这可能会产生类似的结果:
array(4) {
[1]=>
array(2) {
["id_product"]=>
string(4) "1373"
["quantity"]=>
int(1)
}
[2]=>
array(2) {
["id_product"]=>
string(4) "1374"
["quantity"]=>
int(2)
}
}
我尝试使用array_search()
和unset()
,但无济于事。有关如何使用这些函数的任何建议,以便我可以排除任何具有以下条件的子数组:sub-key
= x和value
= y。
非常感谢你帮助我。
答案 0 :(得分:1)
$newArray = array_filter(
$originalArray,
function($value) {
return $value['quantity'] > 0;
}
);
答案 1 :(得分:1)
尝试使用自定义代码
function array_filter(){
$newArray = array();
foreach($array as $key => $value){
if($value["quantity"] > 0)
$newArray[] = $value
}
return $newArray;
}
享受:)