Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php arsort没有给出预期的结果_Php_Sorting_Backticks - Fatal编程技术网

Php arsort没有给出预期的结果

Php arsort没有给出预期的结果,php,sorting,backticks,Php,Sorting,Backticks,我希望这段代码能够输出 $a=array('a'=>'`a:1:`','b'=>'`a:`','c'=>'`a:0:`'); arsort($a); print_r($a); 但它实际上是输出的 Array ( [a] => `a:1:` [c] => `a:0:` [b] => `a:` ) 你知道为什么反勾号会弄乱吗?反勾号将被视为用于排序的字符。由于所有字符串都以一个非isuse的字符串开始,但字符串的长度不同,因此在您的示例

我希望这段代码能够输出

$a=array('a'=>'`a:1:`','b'=>'`a:`','c'=>'`a:0:`');
arsort($a);
print_r($a);
但它实际上是输出的

Array
(
    [a] => `a:1:`
    [c] => `a:0:`
    [b] => `a:`
)

你知道为什么反勾号会弄乱吗?

反勾号将被视为用于排序的字符。由于所有字符串都以一个非isuse的字符串开始,但字符串的长度不同,因此在您的示例中会考虑最后一个反勾号。请参见示例数据,直到
之后,所有值都是相同的,因此下一个要排序的字符是backtick,1和0,它们的顺序是相反的,这对我来说似乎是正确的

从上面给出我的评论作为答案,因为我想这是正确的答案


要扩展它,您可能需要使用
trim
执行uasort,以删除反勾号并反向排序。

较短的字符串获胜,这里没有意外。反勾号将被视为用于排序的字符。由于所有字符串都以一个非isuse的字符串开始,但字符串的长度不同,因此在您的示例中会考虑最后一个反勾号。参见示例,直到<代码>:< /代码>所有的值都是相同的,所以下一个字符是背斜,1和0,并且这些命令是反向的,这对我是正确的。哦,该死的,我一直在考虑回退不是字符串的一部分,请考虑将它标记为如果它解决了你的问题的答案。
Array
(
    [b] => `a:`
    [a] => `a:1:`
    [c] => `a:0:`
)