Php 如何按每个项目的摘要对数组中的项目进行分组
我明白了,也许你想要的答案是Php 如何按每个项目的摘要对数组中的项目进行分组,php,Php,我明白了,也许你想要的答案是 $quantity = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, 2, 16); // Create a new array $output_array = array(); $current_array = array(); $current_sum = 0; foreach ($quantity as $value) { $current_sum += $value; if ($c
$quantity = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, 2, 16);
// Create a new array
$output_array = array();
$current_array = array();
$current_sum = 0;
foreach ($quantity as $value) {
$current_sum += $value;
if ($current_sum >= 35) {
$output_array[] = $current_array;
$current_array = array();
$current_sum = $value;
}
$current_array[] = $value;
}
$output_array[] = $current_array;
print_r($output_array);
// Output:
// Array
// (
// [0] => Array
// (
// [0] => 1
// [1] => 2
// [2] => 3
// [3] => 4
// [4] => 5
// [5] => 6
// [6] => 7
// )
// [1] => Array
// (
// [0] => 8
// [1] => 9
// [2] => 10
// )
// [2] => Array
// (
// [0] => 11
// [1] => 12
// [2] => 1
// )
// [3] => Array
// (
// [0] => 14
// [1] => 2
// [2] => 16
// )
// )
我已经试过了,没问题。我明白了,也许你想要的答案如下:
$quantity = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, 2, 16);
// Create a new array
$output_array = array();
$current_array = array();
$current_sum = 0;
foreach ($quantity as $value) {
$current_sum += $value;
if ($current_sum >= 35) {
$output_array[] = $current_array;
$current_array = array();
$current_sum = $value;
}
$current_array[] = $value;
}
$output_array[] = $current_array;
print_r($output_array);
// Output:
// Array
// (
// [0] => Array
// (
// [0] => 1
// [1] => 2
// [2] => 3
// [3] => 4
// [4] => 5
// [5] => 6
// [6] => 7
// )
// [1] => Array
// (
// [0] => 8
// [1] => 9
// [2] => 10
// )
// [2] => Array
// (
// [0] => 11
// [1] => 12
// [2] => 1
// )
// [3] => Array
// (
// [0] => 14
// [1] => 2
// [2] => 16
// )
// )
我试过测试,没问题。你的问题/期望输出是什么?你的问题/期望输出是什么?
$quantity = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, 2, 16);
// Create a new array
$output_array = array();
$current_array = array();
$current_sum = 0;
foreach ($quantity as $value) {
$current_sum += $value;
if ($current_sum >= 35) {
$output_array[] = $current_array;
$current_array = array();
$current_sum = $value;
}
$current_array[] = $value;
}
$output_array[] = $current_array;
print_r($output_array);
// Output:
// Array
// (
// [0] => Array
// (
// [0] => 1
// [1] => 2
// [2] => 3
// [3] => 4
// [4] => 5
// [5] => 6
// [6] => 7
// )
// [1] => Array
// (
// [0] => 8
// [1] => 9
// [2] => 10
// )
// [2] => Array
// (
// [0] => 11
// [1] => 12
// [2] => 1
// )
// [3] => Array
// (
// [0] => 14
// [1] => 2
// [2] => 16
// )
// )
$quantity = array(1,2,3,4,5,6,7,8,9,10,11,12,1,14,2,16);
// Create a new array
$output_array = array();
$sum_quantity = 0;
$i = 0;
for each($quantity as $value) {
$sum_quantity += $value;
if($sum_quantity >= 35) {
$i++;
$output_array[$i][] = $value;
$sum_quantity = $value;
}else{
$output_array[$i][] = $value;
}
}
print_r($output_array);