2013-04-04 203 views
1

我有一個第一200的$array1整數值,$array1整數值是隨機值和第二陣列說如下分陣列分成較小的陣列

$array2= array('30','40,'70','30','30'); 

這兩個陣列被動態生成。

我想將$array1$array1分成較小的陣列爲每$array2值,如第一30個整數將使單獨的數組,後來從$array1 40個intergers將使第二新陣列等。從上面的例子中將會有5個新的陣列。

任何人都可以請幫助我。

我在下面試過,它可以根據分配的值進行分割。但

$arrays = array_chunk($array1, 30); 
+2

通過array2循環,並從array1做一個array_slice()到一個新的數組,以獲得必要的長度 – 2013-04-04 11:22:49

回答

2

你應該每次迭代塊大小的陣列上,並切斷你的輸入數組的適當部分:

$input = range(0, 199); 
$chunks = array(30, 40, 70, 30, 30); 
$output = array(); 
$processed = 0; 

while($chunks) { 
    $processed += $size = array_shift($chunks); 
    $output[] = array_slice($input, $processed, $size); 
} 
+0

嗨,喬恩,感謝您的幫助,在'$ array1'我有隨機生成的整數 – sidd 2013-04-04 11:41:44

+0

嗨喬恩,需要使用$ output [] = array_chunk($ input,$ processed,$ size);謝謝!! :) – sidd 2013-04-04 12:40:20

0

你爲什麼不嘗試是沒有用的這個

 $startingPoint = 0; 
     foreach($array2 as $val) 

     { 
     for($i = $startingPoint ; $i < $startingPoint + $val ; $i++) 
     { $array1[$i] } 
     $startingPoint += $val 
     } 
+0

嗨Devesh,謝謝!但沒有得到要求o/p – sidd 2013-04-05 04:34:06