php - 递归推入数组
问题描述
我有数组月份和数据,我想将数据数组推送到他的月份计数。例如,如果我有 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"];
解决方案
你的 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 ) */
推荐阅读
- reactjs - React 路由器 history.push 回退到 404 路由
- git - Jenkins 通用 Webhook 触发器,用于合并提交
- python - 如何使用 xlsxwriter 将双色渐变应用于单元格背景?
- python-3.x - 尝试在 MacBook 上运行 python 塔防游戏项目时遇到问题
- javascript - document.querySelector 返回 null,但元素存在
- javascript - 如何让 SonarQube 扫描 Java 项目中的 JavaScript/TypeScript 源代码?
- pandas - 基于两列和 where 子句合并数据框
- html - 单击时如何更改html按钮
- php - 在 PHP 中使用浏览器检测
- html - Bootstrap中Col之间的动态间距