我试图用特定条件替换数组值.
假设数组$mark具有以下值
$mark = array(90,85);
只是正常的检查值,它正在回显正确的值
array_walk_recursive($mark, function (&$k) {
if($k==90){$k='4.0';}
if($k==85){$k='3.6';}
});
print_r($mark);
输出是
Array ( [0] => 4.0 [1] => 3.6 )
但是在应用大于或小于等条件时,它会返回错误的值.
array_walk_recursive($mark, function (&$k) {
if($k>=90){$k='4.0';}
if($k>=80 AND $k<90){$k='3.6';}
if($k<79){$k='2.8';}
});
print_r($mark);
输出是
Array ( [0] => 2.8 [1] => 2.8 )
解决方法:
你必须在if中使用else
<?PHP
$mark = array(90,85);
array_walk_recursive($mark, function (&$k) {
if ($k >= 90) {
$k = '4.0';
} else if ($k >= 80 && $k<90) {
$k = '3.6';
} else if ($k < 80) {
$k = '2.8';
}
});
print_r($mark);
请参阅3v4l的实际操作