php - 对子数组进行排序,以便每个子数组中的对应值按数字顺序排列?
问题描述
我需要一个自定义排序函数,它将采用二维数组值,并对子数组进行排序,以便每个子数组中的对应值按数字顺序排列。任何值为 -1 的内容都可以忽略。
由于这很难用文字来解释,所以这里举个例子。从以下内容开始:
[
["1st"] => [ [0] => 0 [1] => 0 [2] => 0 ]
["2nd"] => [ [0] => 2 [1] => 2 [2] => 3 ]
["3rd"] => [ [0] => 3 [1] => -1 [2] => -1 ]
["4th"] => [ [0] => 5 [1] => 6 [2] => 11 ]
["5th"] => [ [0] => -1 [1] => 3 [2] => 4 ]
["6th"] => [ [0] => -1 [1] => 4 [2] => -1 ]
["7th"] => [ [0] => -1 [1] => 5 [2] => 10 ]
["8th"] => [ [0] => -1 [1] => -1 [2] => 2 ]
["9th"] => [ [0] => -1 [1] => -1 [2] => 5 ]
]
["4th"][1] 高于任何其他 [1] 列值,因此需要将其移至末尾。接下来,有 2 个值乱序的 [2] 行。将它们放置在适当的位置后,数组应如下所示:
[
["1st"] => [ [0] => 0 [1] => 0 [2] => 0 ]
["8th"] => [ [0] => -1 [1] => -1 [2] => 2 ]
["2nd"] => [ [0] => 2 [1] => 2 [2] => 3 ]
["3rd"] => [ [0] => 3 [1] => -1 [2] => -1 ]
["5th"] => [ [0] => -1 [1] => 3 [2] => 4 ]
["9th"] => [ [0] => -1 [1] => -1 [2] => 5 ]
["6th"] => [ [0] => -1 [1] => 4 [2] => -1 ]
["7th"] => [ [0] => -1 [1] => 5 [2] => 10 ]
["4th"] => [ [0] => 5 [1] => 6 [2] => 11 ]
]
忽略 -1 值,[0] 列现在读取“0, 2, 3, 5”,[1] 列读取“0, 2, 3, 4, 5, 6”,[2] 列读作“0、2、3、4、5、10、11”。
这要求行可以说是“一致的”,并且不适用于每种情况。我通常了解我需要在这里做什么,我只是不确定如何将其编写为实际代码。
我将使用它来确定元素在网站上显示的顺序,因此我需要一个 PHP 解决方案。(我可能也想要一个 JavaScript 版本,但是一旦我有一些在 PHP 中工作的东西,我就可以自己解决)。
解决方案
推荐阅读
- sql - 我是否需要在具有 CHECK 约束的列上指定 NOT NULL?
- css - 您如何在 Firefox 中设置自动填充输入的样式?
- c# - 如何修复“找不到可安装的 ISAM”错误
- apache-spark - Spark 过滤器未按预期工作。“列”对象不可调用
- r - 制作依赖于 renderUI 和 uiOutput 的绘图的警告
- javascript - AngularJS 单元测试业力 - 未知的提供者
- python - 用坐标列表索引二维数组的Pythonic方法
- elastic-stack - 将字段值附加到 Filebeat 处理的每个日志消息
- r - R:按索引和列名对 draframe 行进行索引,给出所有级别
- javascript - 从外部 javascript 获取 div id