【发布时间】:2021-04-14 18:55:38
【问题描述】:
我需要根据我对不同数组的排序方式对数组进行排序,这里有 2 个示例数组,它们根据它们的索引链接(因此 $array1[0] 和 $array2[0] 与彼此):
$array1 = Array (
'2',
'1',
'3'
);
$array2 = Array (
'linked_to_2',
'linked_to_1',
'linked_to_3',
);
如您所见,$array1[0] 与 $array2[0] 相关,$array1[1] 与 $array2[1] 相关,$array1[2] 与 $array2[2] 相关。
现在我创建一个新的,它使用与 $array1 相同的值,但顺序如下:
$sorted_array1 = Array (
'1',
'2',
'3'
);
但是我不能使用相同的方法对 $array2 进行排序,那么如何使用 $array1 和/或 $sorted_array1 来使用 $array2 的值创建一个排序数组,如下所示:
$sorted_array2 = Array (
'linked_to_1',
'linked_to_2',
'linked_to_3',
);
对于我的实际用例中的一些上下文,我在第一个数组中有几个 ID,我查询数据库并在具有这些 ID 的数据库表中按创建日期对它们进行排序(这是在该数据库表)。 array2 的值不在此数据库表中,因此不能以相同的方式排序。
【问题讨论】:
-
你以前检查过这个问题吗? stackoverflow.com/q/348410/1066240
-
$array1有唯一值吗? -
@biesior 是的,我做到了,虽然问题很相似,但我无法从那里发布的答案中找到有效的解决方案
-
@nice_dev 是的,它们是订单系统的 ID,每一个都是唯一的,$array2 的值也是唯一的
-
@kevinfromspace 第一步是考虑 usort() 并创建 2 个关联数组以在排序期间做出顺序决策