2016-11-21 73 views
0

我試圖以動態的方式來分割的陣列,如在功能array_chunk而不是第二參數int $size被允許添加的陣列等array different_sizes與array_chunk分割陣列動態基於另一陣列

$input_sub_arr = range('01', '15'); 
    $input_sub_array = array(); 
    foreach ($input_sub_arr as $answer) { 
     $input_sub_array[] = 'answer-'.$answer; 
    } 
    var_Dump($input_sub_array); 

$new_answer = array_chunk($input_sub_array, array(5, 6 , 2)); 
var_dump($new_answer); 

回答

1

即使這樣做的目標是什麼?你是說你想要創建3個數組,其中一個是5個項目,接着是6個,然後是2個?

function partition(array $values, array $sizes) 
{ 
    $results = []; 
    foreach ($sizes as $size) { 
     $current = []; 
     while (count($values) > 0 && count($current) < $size) { 
      $current[] = array_unshift($values); 
     } 
     $results[] = $current; 
    } 
    return $results; 
} 

$result = partition($input_sub_arr, [5, 6, 2]); 
// [['answer-01', 'answer-02', 'answer-03', 'answer-04', 'answer-05'], ['answer-06', 'answer-07', 'answer-08', 'answer-09', 'answer-10', 'answer-11'], ['answer-12', 'answer-13']] 
+0

是的,這就是我所說的話 – user3467855

+0

嘿,你可以看看這裏也。我在爲多維數組拼命工作。 http://stackoverflow.com/questions/40721138/split-multidimensional-array-with-array-chunk-based-on-another-array – user3467855