我有这个数组和一个值,就像这个...
'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];
这将打印: 单位
干杯 -乔