我有一个像以下的php数组:
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
实际上任何具有负值的数组。
现在我想将所有负值更改为另一个值,让我们说0。 结果我想得到这个:
$res = [0, 15, 6, 44, 9292, 0, 0, 0];
我怎么能做到这一点?
感谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用array_walk函数来解析数组值:
<?php
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
$newArr = [];
array_walk($arr, function ($item, $key) use (&$newArr) {
$newArr[$key] = $item >= 0 ? $item : 0;
});
print_r($newArr);
答案 2 :(得分:0)
for($i = 0; $i < count($arr); $i++){
if ($arr[$i] < 0)
$arr[$i] = 0;
}
答案 3 :(得分:0)
您可以使用array_map
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
function neg($a){
return ($a > 0 ) ? $a : 0;
}
print_r(array_map("neg",$arr));
答案 4 :(得分:0)
您可以使用array_walk
功能:
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
array_walk($arr, function(&$v, $k) {
$v = ($v <0) ? 0 : $v;
});
答案 5 :(得分:0)
Array_walk很棒但是foreach更快更容易理解
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
foreach($arr as $key => $value){
echo $value < 0 ? 0 : $value;
}