请教一段 PHP 代码的意思

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

文档上说的很明白啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531698

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX