2016-08-02 65 views
0
<?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(); 
$sum_quantity = 0; 
$i = 0; 
foreach ($quantity as $value) { 
    if($sum_quantity >= 35) { 
     $output_array[$i][] = $value; 
    } 
    $sum_quantity = $sum_quantity + $value; 
} 
print_r($output_array); 

當summmary每個項目> = 35將自動創建子陣列如何組數組項通過彙總每個項目

array(
    [0] => array(1, 2, 3, 4, 5, 6, 7), 
    [1] => array(8, 9, 10), 
    [2] => array(11, 12, 1), 
    [3] => array(14, 2, 16) 
) 
+0

什麼是您的問題/期望的輸出? –

回答

2
$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 
//  ) 

//) 
0

我明白了,也許你想要的答案如下,

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

我試過了,沒關係。