【发布时间】:2022-10-08 11:44:46
【问题描述】:
事情是这样的,我有一个数组,我想按每第三个项目重新排序。所以它是第 1、第 4、第 7,然后是第 2、第 5、第 8 和第 3、第 6、第 9。
由此:
$items = array('1','2','3','4','5','6','7','8','9');
对此:
$reordered_items = array('1','4','7','2','5','8','3','6','9');
或者它也可以是 3 个单独的数组。像这样:
['1', '4', '7']['2', '5', '8']['3', '6', '9']
尝试过array_chunk($items, count($items) / 3),但它只返回相同的数组,分为 3 个相等的数组。
['1', '2', '3']['4', '5', '6']['7', '8', '9']
我不知道我是否应该使用array_chunk 然后使用其他东西来实现我想要的。因此,让我知道您对此有何看法。
UPD:输入数组中不必正好是 9 个项目。它可以更短或更长,关键是它必须每找到第三个项目,只要找到任何等等......
因此,如果有 10 个项目:
$items = array('1','2','3','4','5','6','7','8','9','10');
输出应该是这样的:
$reordered_items = array('1','4','7','10','2','5','8','3','6','9');
谢谢!
【问题讨论】:
-
数组是否总是正好 9 个项目长,或者是否有一个规则来规定更短或更长的数组应该是什么样子?
-
@IMSoP 不完全是 9 项,我只是将其用作参考。关键是第三条。因此,即使有 5 个项目,它也应该像这样订购:1、4、2、5、3。我什至不知道这是否可能:D
-
示例输入数组是否总是“排序”的,或者仅仅是为了举例?
-
@mardubbles 总是排序的
-
使用数组值