V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
githere
V2EX  ›  PHP

请教一段 PHP 代码的意思

  •  
  •   githere · 2019-01-29 20:47:40 +08:00 · 3703 次点击
    这是一个创建于 1912 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php
    function key_compare_func($a, $b)
    {
    if ($a === $b) {
    return 0;
    }
    return ($a > $b)? 1:-1;
    }

    $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array("a" => "green", "yellow", "red");
    $result = array_diff_uassoc($array1, $array2, "key_compare_func");
    print_r($result);
    ?>


    请问: return ($a > $b)? 1:-1;
    这一行具体是什么意思,如何执行的?不太明白这一行代码的意思
    14 条回复    2019-01-30 11:26:51 +08:00
    tulongtou
        1
    tulongtou  
       2019-01-29 20:48:34 +08:00
    三元运算符
    mamahaha
        2
    mamahaha  
       2019-01-29 20:51:52 +08:00
    它在问你是不是$a 大于$b,如果是就 return 1,如果不是就 return -1。。。我没学过编程的都看明白了。
    via
        3
    via  
       2019-01-29 20:52:46 +08:00 via iPhone
    日常黑 PHP
    jjzhanhun
        4
    jjzhanhun  
       2019-01-29 20:54:19 +08:00
    if ($a > $b) {
    return 1;
    } else {
    return -1;
    }
    GeekCourse
        5
    GeekCourse  
       2019-01-29 21:00:43 +08:00 via Android
    你的疑问到底是什么呢?
    仅仅是不知道那一行代码的作用吗?
    还是在疑惑为什么通过返回-1/0/1 就可以排序?
    jingyulong
        6
    jingyulong  
       2019-01-29 21:10:28 +08:00
    三元运算符,好多语言里面都有的。
    githere
        7
    githere  
    OP
       2019-01-29 22:45:53 +08:00
    githere
        8
    githere  
    OP
       2019-01-29 22:46:44 +08:00
    @GeekCourse 为什么通过返回-1/0/1 就可以排序?
    cpdyj0
        9
    cpdyj0  
       2019-01-29 22:51:20 +08:00
    @githerephp.net 查文档吧。
    MonoLogueChi
        10
    MonoLogueChi  
       2019-01-29 23:00:18 +08:00 via Android
    上面是三目运算,如果 a 大于 b 为真,返回:前面地区,否则返回:后面的。
    第二个问题,百度 array_diff_uassoc
    zhuzhibin
        11
    zhuzhibin  
       2019-01-29 23:12:22 +08:00 via iPhone
    买了否冷?兄弟去看看三元运算符吧
    chotow
        12
    chotow  
       2019-01-29 23:31:15 +08:00 via iPhone
    想起了太空舱操作符,$a <=> $b。
    way2create
        13
    way2create  
       2019-01-30 09:01:01 +08:00
    这不就是 array_diff_uassoc 的示例吗
    898601566
        14
    898601566  
       2019-01-30 11:26:51 +08:00
    在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。

    文档上说的很明白啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   988 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:10 · PVG 04:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.