【问题标题】:Sorting two arrays so that the second array sorting is based on the first对两个数组进行排序,以便第二个数组排序基于第一个
【发布时间】:2017-08-21 10:21:39
【问题描述】:

我有两个数组。第一个数组包含用户 ID,第二个数组包含针对一个剔除数据集的匹配答案数。这些数组的大小将始终相同,并且当前匹配的数组值索引对应于用户 ID 的索引。

useridArr = [1a,2a,3a,4a];
matched = [12,2,5,11];

所以这里用户 1a 有 12 个匹配的答案,用户 2a 有 2 个,依此类推。现在如何按降序对匹配的数组进行排序,同时对 useridArr 进行相应的排序。谢谢

useridArr = [1a,4a,3a,2a];
matched = [12,11,5,2];

【问题讨论】:

  • 您的问题是array_multisort()的文档中的第一个用法示例。你读过吗?
  • @axiac 我认为在这种情况下 multisort 不相关

标签: php arrays sorting


【解决方案1】:

你想要array_multisort

array_multisort($matched, $userIdArr);

将根据需要对两个数组进行排序。

array_multisort($matched, SORT_DESC, $userIdArr);

将根据您的评论要求按降序排列。 http://php.net/manual/en/function.array-multisort.php 提供了有关此功能的更多信息。

【讨论】:

  • 我认为这将对两个数组进行排序,失去它们之间的关系。
  • 您好,感谢您的回答。维护两个数组之间的关系/共享顺序是最重要的部分
  • @FabioMarzocca 这就是他的要求:对匹配的数组进行排序并相应地对用户 ID 数组进行排序。
  • @FabioMarzocca 错误。它对两个数组保持关系进行排序。阅读array_multisort()的文档,示例#1。
  • @jimiss 这个演示展示了它的工作原理:sandbox.onlinephpfunctions.com/code/…你需要不同的结果吗?
猜你喜欢
  • 2020-11-19
  • 2020-08-01
  • 2016-11-05
  • 2018-11-18
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
相关资源
最近更新 更多