首页 > 解决方案 > 递归推入数组

问题描述

我有数组月份和数据,我想将数据数组推送到他的月份计数。例如,如果我有 8 个月,我想合并数据 8 次。

$month_count = 8;
$monthly_header1 = [];
$data = [
    'Budget', 
    'Revenue', 
    'EE', 
    'EN', 
    'New revenues', 
    'WIP Revenue', 
    'No SOW', 
    'Actual', 
    'DSO', 
    'Variance',
    ];
for ($i = 0; $i > $month_count; ++$i) {
    $monthly_header1[] = array_merge($monthly_header1, $data);
}
print_r($monthly_header1[]); // returns null now.need to dump the array 8 times

预期产出

$monthly_header1=[
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance",
"Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance"];

标签: phparrays

解决方案


你的 for 循环有一个错误,你的代码中真正的问题是;array_merge行为。

PHP.net 这么说;

将一个或多个数组的元素合并在一起,以便将一个数组的值附加到前一个数组的末尾。它返回结果数组。

因此,您需要为每个循环$monthly_header1使用组合数组(的结果)设置变量,array_merge如下所示。

$month_count=8;
$monthly_header1= array();

$data = ["Budget","Revenue","EE","EN","New revenues","WIP Revenue","No SOW","Actual","DSO","Variance"];

for ($i=0;$i<$month_count;$i++){
    $monthly_header1 = array_merge($monthly_header1,$data);
}

print_r($monthly_header1);
    /* It prints below result*/
    /* Array ( [0] => Budget [1] => Revenue [2] => EE [3] => EN [4] => New revenues [5] => WIP Revenue [6] => No SOW [7] => Actual [8] => DSO [9] => Variance [10] => Budget [11] => Revenue [12] => EE [13] => EN [14] => New revenues [15] => WIP Revenue [16] => No SOW [17] => Actual [18] => DSO [19] => Variance [20] => Budget [21] => Revenue [22] => EE [23] => EN [24] => New revenues [25] => WIP Revenue [26] => No SOW [27] => Actual [28] => DSO [29] => Variance [30] => Budget [31] => Revenue [32] => EE [33] => EN [34] => New revenues [35] => WIP Revenue [36] => No SOW [37] => Actual [38] => DSO [39] => Variance [40] => Budget [41] => Revenue [42] => EE [43] => EN [44] => New revenues [45] => WIP Revenue [46] => No SOW [47] => Actual [48] => DSO [49] => Variance [50] => Budget [51] => Revenue [52] => EE [53] => EN [54] => New revenues [55] => WIP Revenue [56] => No SOW [57] => Actual [58] => DSO [59] => Variance [60] => Budget [61] => Revenue [62] => EE [63] => EN [64] => New revenues [65] => WIP Revenue [66] => No SOW [67] => Actual [68] => DSO [69] => Variance [70] => Budget [71] => Revenue [72] => EE [73] => EN [74] => New revenues [75] => WIP Revenue [76] => No SOW [77] => Actual [78] => DSO [79] => Variance ) */

推荐阅读