我试图用特定条件替换数组值.
假设数组$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的实际操作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。