如何在PHP中按字母顺序比较2个字符串?

Cli*_*ote 55 php sorting string

标题说的是什么.特别是如果我有

$array1['name'] = 'zoo';
$array2['name'] = 'fox';
Run Code Online (Sandbox Code Playgroud)

我怎样才能确定按字母顺序排列$array2的名字应该高于$array1

avi*_*ldg 90

使用strcmp.如果strcmp的第一个参数按字典顺序小于第二个参数,则返回的值将为负数.如果两者相等,那么它将返回0.如果第一个在字典上大于第二个,那么将返回一个正数.

NB.您可能想要使用strcasecmp(string1,string2),忽略大小写......


Gum*_*mbo 12

你可以比较两个字符串strcmp:

如果str1小于str2,则返回<0 ; 如果str1大于str2则> 0 ,如果它们相等则为0.


JMR*_*MRC 6

我有点晚了(然后我在2009年还不是程序员:-)还没有人提到这一点,但你可以简单地使用你在数字上使用的运算符.

< > <= >= == != 和更多

例如:

'a' > 'b' 回报 false

'a' < 'b' 回报 true

http://php.net/manual/en/language.operators.comparison.php

重要

有一个缺陷,您可以在下面的评论中找到.

  • 这不会*按预期工作.例如,''10'<'2'`的计算结果为假,即使字符串''10''应该在''2'之前,如果你按字母顺序*进行比较*(这就是问题所在).这是因为每当字符串看起来像整数时,PHP会自动将它们转换为整数,并在数字上而不是按字母顺序对它们进行比较.如果您的目标是按字母顺序进行比较,您应该按照建议使用`strcmp()`. (6认同)