【发布时间】:2018-03-16 23:22:15
【问题描述】:
$a=array('a'=>'`a:1:`','b'=>'`a:`','c'=>'`a:0:`');
arsort($a);
print_r($a);
我希望这段代码能输出
Array
(
[a] => `a:1:`
[c] => `a:0:`
[b] => `a:`
)
但它实际上输出
Array
(
[b] => `a:`
[a] => `a:1:`
[c] => `a:0:`
)
你明白为什么反引号搞砸了吗?
【问题讨论】:
-
较短的字符串获胜,这并不奇怪。
-
反引号将被视为字符进行排序。由于所有内容都以一个不是 isuse 但字符串长度不同的开头,因此在您的情况下考虑最后一个反引号。在
:之后查看示例,所有值都相同,因此下一个字符是反引号,1 和 0,它们是反向排序的,这对我来说似乎是正确的。 -
哦,这该死的对,我一直认为反引号不是字符串的一部分
-
如果它解决了您的问题,请考虑将此标记为已回答 - meta.stackexchange.com/questions/5234/…