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);