根据另一个数组动态地使用array_chunk拆分数组 [英] Split array with array_chunk dynamically based on another array
本文介绍了根据另一个数组动态地使用array_chunk拆分数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试以动态方式拆分数组,例如在函数 array_chunk
上,而不是第二个参数 int $ size
上,以允许添加数组 array different_sizes
I am trying to split an array in a dynamic way, like on the function array_chunk
instead of the second parameter int $size
to be allowed to add an array like array different_sizes
$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);
推荐答案
这样做的目的是什么?您是说要创建3个数组,一个数组包含5个项目,其次是6个数组,然后是2个数组?
What would be the goal of even doing that? Are you saying you want 3 arrays created, one with 5 items, followed by one with 6, followed by one with 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']]
这篇关于根据另一个数组动态地使用array_chunk拆分数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文