【发布时间】:2015-07-25 20:56:49
【问题描述】:
我有三个使用相同键同步的数组,我需要 natsort 并将 array_values() 应用于 array1,同时保持 array2 和 array3 与 array_values() 为 array1 设置的新键同步。
我环顾四周,找不到任何用于在对其中一个进行排序后保持多个数组键同步的方法。提前感谢您对此问题的任何帮助。
-- array1 (unsorted)
Array (
0 => OA.3,
1 => OA.8,
2 => OA.6,
3 => OA.2,
)
-- array2 (unsorted)
Array (
0 => 4,
1 => 1,
2 => 5,
3 => 3,
)
-- array3 (unsorted)
Array (
0 => 3,
1 => 1,
2 => 5,
3 => 0,
)
-- array1 (natsorted)
Array (
3 => OA.2,
0 => OA.3,
2 => OA.6,
1 => OA.8,
)
-- array_values(natsort(array1))
Array (
0 => OA.2,
1 => OA.3,
2 => OA.6,
3 => OA.8,
)
--- needed result for array2/array3 ---
-- array2 (keys matching array1)
Array (
0 => 3,
1 => 4,
2 => 5,
3 => 1,
)
-- array3 (keys matching array1)
Array (
0 => 0,
1 => 3,
2 => 5,
3 => 1,
)
在对 array1 进行 natsort() 和 array_values() 排序期间,是否有某种方法可以使所有这三个数组保持同步? array2 和array3 的最终结果显示了与array1 的排序和re-keying 的最终结果匹配的新键。
对此的任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你想要什么作为最终输出?我无法理解您的问题。
-
@Viral 抱歉,我刚刚更新了 OP。重新阅读帖子后意识到这有点令人困惑。让我知道它是否更好
-
是的,现在更好了,由于
var_export(),而不是print_r(),也发布了array1、2和3 -
@Viral ok 刚刚也将输出更改为 var_export()
-
我觉得我需要手动执行此操作并以某种方式准备 natsort 与键的顺序并将它们存储在临时变量中以将它们应用于其他 2 个数组但我什至无法理解它.而且我对 php 不是最好的,所以我什至不知道是否可以读取 natsort 的顺序并存储这些数字和它们的实际键,以便在不破坏其他 2 个数组的情况下应用它们
标签: php arrays sorting key sync