Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php数组中按条件替换所有项_Php_Arrays_Numbers - Fatal编程技术网

在php数组中按条件替换所有项

在php数组中按条件替换所有项,php,arrays,numbers,Php,Arrays,Numbers,我有一个php数组,如: $arr = [-1, 15, 6, 44, 9292, -2, -776, -6]; 实际上,任何具有负值的数组 现在我想把所有的负值换成另一个值,比如0。 结果我想得到这个: $res = [0, 15, 6, 44, 9292, 0, 0, 0]; 我怎样才能做到这一点 谢谢。您可以使用函数解析数组值: <?php $arr = [-1, 15, 6, 44, 9292, -2, -776, -6]; $newArr = []; array_walk(

我有一个php数组,如:

$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
实际上,任何具有负值的数组

现在我想把所有的负值换成另一个值,比如0。 结果我想得到这个:

$res = [0, 15, 6, 44, 9292, 0, 0, 0];
我怎样才能做到这一点

谢谢。

您可以使用函数解析数组值:

<?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);
用于($i=0;$i
您可以检查此库

并使用命令


$arr[$arr->lt(0)]=0

您可以使用
数组\u映射

$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];

function neg($a){

    return ($a > 0 ) ? $a : 0;

}

print_r(array_map("neg",$arr));

您可以使用
array\u walk
功能:

$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];
array_walk($arr, function(&$v, $k) {
    $v = ($v <0) ? 0 : $v;
});
$arr=[-1,15,6,449292,-2,-776,-6];
数组_walk($arr,函数(&$v,$k){

$v=($vArray_walk很棒,但是foreach更快,更容易理解

$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];

foreach($arr as $key => $value){
    echo $value < 0 ? 0 : $value;
}
$arr=[-1,15,6,449292,-2,-776,-6];
foreach($arr作为$key=>$value){
echo$value<0?0:$value;
}

wow,这很有趣。所有建议的阵列图看起来都很难看,老实说。我来检查一下one@JanetDou第一次听说
array\u walk()
看起来很难看。为这么简单的任务使用额外的库不是一个很好的主意。您可能需要详细说明您的答案,说明为什么这样可以解决问题
$arr = [-1, 15, 6, 44, 9292, -2, -776, -6];

foreach($arr as $key => $value){
    echo $value < 0 ? 0 : $value;
}