2011-11-05 89 views
0

我一直在試圖弄清楚,直到我的大腦崩潰。 我試圖排序數組。將一個數組轉換成一個二維數組,並刪除前11個條目

前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 
      ) 
) 

回答

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; 
} 

$新都會有新的多維化陣列

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); 
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); 

Demo

相關問題