dsfhe34889 2019-02-06 10:51
浏览 48
已采纳

大于或小于array_walk递归

I am trying to replace array value with specific condition.

Suppose array $mark has following value

$mark = array(90,85);

Just normal checking value it is echoing correct value

array_walk_recursive($mark, function (&$k) { 
  if($k==90){$k='4.0';}
  if($k==85){$k='3.6';}
});

print_r($mark);

Output is

Array ( [0] => 4.0 [1] => 3.6 )

But while applying condition such as greater than or less than, it returns wrong value.

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);

And the Output is

Array ( [0] => 2.8 [1] => 2.8 )
  • 写回答

3条回答 默认 最新

  • doucuoyan0426 2019-02-06 10:57
    关注

    You must use else in if

    <?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);
    

    See it in action on 3v4l

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥20 51单片机学习中的问题