2016-11-21 112 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