Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 递归地推送数组_Php_Arrays - Fatal编程技术网

Php 递归地推送数组

Php 递归地推送数组,php,arrays,Php,Arrays,我有数组月份和数据 我想推送数据数组以计算月份数。例如,如果我有8个月,我想将数据合并8次 $month_count = 8; $monthly_header1 = []; $data = [ 'Budget', 'Revenue', 'EE', 'EN', 'New revenues', 'WIP Revenue', 'No SOW', 'Actual', 'DSO', 'Variance',

我有数组月份和数据 我想推送数据数组以计算月份数。例如,如果我有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循环有一个错误,代码中真正的问题是<代码>数组\u合并行为

net说,

将一个或多个数组的元素合并在一起,以便 其中一个的结尾追加到上一个的结尾。它返回 结果数组

因此,您需要为每个循环设置带有组合数组的
$monthly\u header1
变量(数组合并的结果),如下所示

$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 ) */
$month\u count=8;
$monthly_header1=数组();
$data=[“预算”、“收入”、“EE”、“EN”、“新收入”、“在制品收入”、“无SOW”、“实际”、“DSO”、“差异”];
对于($i=0;$i预算[1]=>收入[2]=>EE[3]=>EN[4]=>新收入[5]=>在制品收入[6]=>无SOW[7]=>实际[8]=>DSO[9]=>差异[10]=>预算[11]=>收入[12]=>EE[13]=>EN[14]=>新收入[15]=>在制品收入[16]=>无SOW[17]=>实际[18]=>DSO[19]=>差异[20]=>预算[21]=>收入[23]=>EN[24]=>新收入[25]=>在制品收入[26]=>无SOW[27]=>实际[28]=>DSO[29]=>差异[30]=>预算[31]=>收入[32]=>EE[33]=>EN[34]=>新收入[35]=>在制品收入[36]=>无SOW[37]=>实际[38]=>DSO[39]=>差异[40]=>预算[41]=>收入[42]=>EE[43]=>EN[44]=>新收入[45]=>在制品收入[46]=>无SOW[47]=>实际[48]=>DSO[49]=>差异[50]=>预算[51]=>收入[52]=>EE[53]=>EN[54]=>新收入[55]=>在制品收入[56]=>无SOW[57]=>实际[58]=>DSO[59]=>差异[60]=>预算[61]=>收入[62]=>EE[63]=>EN[64]=>新收入[65]=>在制品收入[66]=>无SOW[67]=>实际收入[68]=>DSO[69]=>差异[70]=>预算[71]=>收入[72]=>EE[73]=>EN[74]=>新收入[75]=>在制品收入[76]=>无SOW[77]=>实际收入[78]=>DSO[79]=>差异)*/

首先,您的循环不正确,需要更改循环条件

for ($i = 0; $i > $month_count; ++$i)

for($i=0;$i<$month\u count;++$i)
然后使用内爆函数将所有数据合并为单个数组

<?php
$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);
}

$implode_array = implode(',', $monthly_header1);
$format_aray = explode('/', $implode_array);
echo "<pre>";
print_r($format_aray);
?>


然后输出将是这样的单个数组您的输出

请检查我的更新post@user3386779我更新了我的答案。
<?php
$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);
}

$implode_array = implode(',', $monthly_header1);
$format_aray = explode('/', $implode_array);
echo "<pre>";
print_r($format_aray);
?>