gpt4 book ai didi

php - laravel - sortBy() 无法正常工作

转载 作者:行者123 更新时间:2023-12-02 03:30:35 27 4
gpt4 key购买 nike

我有一个带有子集合的集合,例如:

+
+--- name: 1a8 Lorem Ipsum
+
+--- name: 1a2 Lorem Ipsum
+
+--- name: 1a10 Lorem Ipsum

现在我想按这个名称对其进行排序:

$collection->sortBy('name')

应该是:

1a2 Lorem Ipsum
1a8 Lorem Ipsum
1a10 Lorem Ipsum

但我得到:

1a10 Lorem Ipsum
1a2 Lorem Ipsum
1a8 Lorem Ipsum
为什么?我也尝试过 $collection->sortBy('name', SORT_NATURAL, false) 但效果相同。

最佳答案

可能发生的情况是,因为您的值以整数开头,所以它们被转换为整数值。这意味着第一个非数字字符之后的任何内容都会被丢弃。在你的情况下,你剩下 3 1's

您可能想要使用实现 strnatcmp 的自定义排序回调

$collection->sort(function($a, $b) {
// using 3 = for type and value comparisan.
if($a->name === $b->name) {
return 0;
};
return strnatcmp($a->name, $b->name);
});

关于php - laravel - sortBy() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961456/

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