如何使用 foreach PHP 将索引和值动态附加到数组中



我有这个数组和一个值,就像这个...

'FirstBranch'
Array => (
['January'],
['February'],
['March']
)

我需要创建另一个具有以下结构的数组...

['FirstBranch'] => array(
['January'] => array( 
'Value',
'%',
'Unit'
),
['February'] => array(
'Value',
'%',
'Unit'
),
['March'] => array(
'Value',
'%',
'Unit'
),
)

我试图通过 foreach 推送这些值,但它不起作用。 我做的代码看起来像这样...

foreach( $months as $month ){
$resultArray['FirstBranch'] = array( 
$month => array('Value',
'%',
'Unit' 
)
);
}

当我这样做时,抛出一个错误,它只是不起作用......有什么想法吗?

您可以使用 for 每个循环附加数组

<?php
$array = array('January', 'February', 'March');
$array2 = array('Value', '%', 'Unit');
$newarray = array();
foreach ($array as $key) {
$newarray['FirstBranch'][$key] = $array2;
}
print_r($newarray);

在这里演示

您需要使用月份名称作为与FirstBranch关联的键。尝试:

foreach( $months as $month ){
$resultArray['FirstBranch'][$month] = array( 
'Value',
'%',
'Unit'
);
}

有一个内置的PHP函数,array_fill_keys,可以简化这一点。

$resultArray['FirstBranch'] = array_fill_keys($months, ['Value', '%', 'Unit']);

我认为这就是您要查找的:

<?
$months=array('Jan','Feb','Mar','Apr','May','Jun',...);
$FirstBranch=array();
foreach($months as $month ) { 
$FirstBranch[$month]=array('Value', '%', 'Unit');
}
var_dump($FirstBranch);
?>

这为您提供:

array(12) {
["Jan"]=>
array(3) {
[0]=>
string(5) "Value"
[1]=>
string(1) "%"
[2]=>
string(4) "Unit"
}
["Feb"]=>
array(3) {
[0]=>
string(5) "Value"
[1]=>
string(1) "%"
[2]=>
string(4) "Unit"
}

如果您想访问 Jan 数组中的第 3 个值:

echo $FirstBranch[Jan][2];

这将打印: 单位

干杯 -乔

最新更新