gpt4 book ai didi

PHP ksort 意外行为

转载 作者:可可西里 更新时间:2023-10-31 23:00:47 25 4
gpt4 key购买 nike

<分区>

让我从头告诉你:我知道这个函数的排序标志。当我使用 SORT_STRING 时,它运行良好,但默认标志 ​​SORT_REGULAR 运行异常,或者根本不起作用。

考虑如下数组。

$arr = [
'27a' => 'foo',
'27b' => 'foo',
'27c' => 'foo',
'27' => 'foo',
];

当我尝试使用 ksort 进行排序时,它给出了一个数组,但没有按照任何明显的逻辑进行排序。

ksort($arr);

print_r($arr);

// this prints
Array
(
[27a] => foo
[27] => foo
[27b] => foo
[27c] => foo
)

可以说,键既不是数字也不是字母数字,也不是自然排序。更奇怪的是,当我改变源数组的顺序时,它给出了不同的结果:

$arr = [
'27a' => 'foo',
'27' => 'foo',
'27b' => 'foo',
'27c' => 'foo',
];

ksort($arr);

print_r($arr);

// this prints
Array
(
[27b] => foo
[27c] => foo
[27] => foo
[27a] => foo
)

有人知道这背后的逻辑吗?这是错误还是我遗漏了什么?

编辑:感谢大家对我的问题感兴趣并回答我的问题。虽然它被标记为重复,但另一个问题没有提到更奇怪的部分:为什么改变源数组的顺序会改变结果?它应该使用相同的输入集给出相同的结果。我们也要讨论这个吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com