我一直试图解决这个问题直到我的大脑崩溃。 我试图对数组进行排序。
必须删除前11个条目,然后接下来的7个条目必须放在一个新数组中,然后放在接下来的7个条目中,依此类推。直到没有更多的参赛作品。
简短的例子:
转过来:
Array (
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
[11] => 11
[12] => 12
[13] => 13
[14] => 14
[15] => 15
[16] => 16
[17] => 17
[18] => 18
)
进入:
Array (
[0] => Array (
[0] => 11
[1] => 12
[2] => 13
[3] => 14
[4] => 15
[5] => 16
[6] => 17
)
)
答案 0 :(得分:3)
这样的事情可以解决问题:
$orig = array(...);
$i = 11; // start at offset 11
$remove = 7; // take off 7 at a time
$new = array();
while($i <= count($orig)) {
$new[] = array_slice($orig, $i, $remove);
$i += $remove;
}
$ new会有你的新多维数组
答案 1 :(得分:1)
为什么while
可以for
$a = array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); // your array
$ret = array(); // new array
for($i=11; $i < sizeof($a); $i+=7)
$ret[] = array_slice($a, $i, 7);
答案 2 :(得分:0)
您可以使用array_slice
获取部分,array_chunk
可以使剩余部分进行分块:
// take out the first 11 elements
$array = array_slice($array, 11);
// create chunks with 7 entries each
$array = array_chunk($array, 7);