>我有 3 个数组,所有数字都与我需要合并到一个 3D 数组中的数字相同。
所以像这样:
array1 = 'aud', 'usd', 'usd'
array2 = 'item 1', item 2', 'item 3'
array3 = '100', 300', 500'
我需要生成一个数组,例如:
new_array1 = 'aud', 'item 1', '100'
new_array2 = 'usd', 'item 2', '300'
我已经尝试了以下什么都不打印的方法:
$item = array();
for($i=0; $i < sizeof($currencies); $i++) {
$item[$i] = array('curr' => $currencies[$i],
'name' => $events[$i],
'result' => $actuals[$i]);
}
print_r($item);
你一定做错了什么,因为我用这个脚本得到了正确的结果:
$arr1 = [ "aud", "usd", "usd" ];
$arr2 = [ "item 1", "item 2", "item 3" ];
$arr3 = [ 100, 300, 500 ];
$nestedArr = [];
for($i = 0; $i < count($arr1); $i++) {
$nestedArr[$i] = [
"curr" => $arr1[$i],
"name" => $arr2[$i],
"result" => $arr3[$i]
];
}
print_r($nestedArr);
输出:
Array (
[0] => Array (
[curr] => aud
[name] => item 1
[result] => 100
)
[1] => Array (
[curr] => usd
[name] => item 2
[result] => 300
)
[2] => Array (
[curr] => usd
[name] => item 3
[result] => 500
)
)
请注意,我使用了PHP数组短语法来声明数组[]
,这应该不会有什么区别。这是很好的做法。
好吧,您的代码应该生成一个 2D 数组,请尝试删除 $i
$item[$i] = array('curr' => $currencies[$i],
所以它看起来像这样:
$item[] = array('curr' => $currencies[$i],
同样要添加 3D 数组,您应该静态创建它,如下所示:
$item = array(
'usd' => array(
item1 => array("100" => 100, "200" => 200, "300" => 300),
item2 => array("100" => 100, "200" => 200, "300" => 300),
item3 => array("100" => 100, "200" => 200, "300" => 300),
),
'eur' => array(
item1 => array("100" => 100, "200" => 200, "300" => 300),
item2 => array("100" => 100, "200" => 200, "300" => 300),
item3 => array("100" => 100, "200" => 200, "300" => 300),
),
'gbp' => array(
item1 => array("100" => 100, "200" => 200, "300" => 300),
item2 => array("100" => 100, "200" => 200, "300" => 300),
item3 => array("100" => 100, "200" => 200, "300" => 300),
),
),