好的,我承认这个问题令人困惑,但我不知道怎么用另一种方式说出来。我有一个看起来像这样的数组:
array(3) {
[0]=>
array(1) {
[some_middle-level_id]=>
array(1) {
[some_low-level_id]=>
array(5) {
["entry1"]=>
string(...) "..."
["entry2"]=>
string(...) ""
...
}
}
}
[1]=>
array(1) {
[another_middle-level_id]=>
array(5) {
[another_low_level_id]=>
array(5) {
["entry1"]=>
string(...) "..."
["entry2"]=>
string(...) ""
...
}
}
}
[2]=>
array(1) {
[another_middle-level_id]=>
array(5) {
[another_low_level_id]=>
array(5) {
["entry1"]=>
string(...) "..."
["entry2"]=>
string(...) ""
...
}
[another_low_level_id]=>
array(5) {
["entry1"]=>
string(...) "..."
["entry2"]=>
string(...) ""
...
}
}
}
编辑: 另一个数组看起来像这样。假设第一个数组中有3个[low_level_id],那么另一个数组看起来就像这样:
array(3) { [0]=> string(3) "bla" [1]=> string(4) "blub" [2]=> string(6) "lalala"}
和另一个具有与“低级别id”条目一样多的条目的数组存在。在每个包含5个条目的“低级别id”-entry中,我想添加第六个条目 - 来自另一个数组的字符串。但我不知道如何访问它。是否可以在不使用数百个循环的情况下访问它?
另一个编辑: 我可以通过以下方式访问第一个条目:
foreach($my_array as $key => $subkey){
foreach($subkey as $val){
$my_array[$key][key($subkey)][key($val)]['6th_entry']="a new string";
}
}
但这仅适用于第一个新条目。我不知道如何访问其他人以及如何添加循环以从其他数组添加条目。
答案 0 :(得分:1)
您可以使用array_map
的嵌套调用。假设$array
是第一个数组而$another_array
是第二个数组,代码应如下所示:
$result = array_map(
function ($elem1) use(&$another_array) {
return array_map(
function ($elem2) use(&$another_array) {
return array_map(
function ($elem3) use(&$another_array) {
list(, $val) = each($another_array);
$elem3['entry6'] = $val;
return $elem3;
},
$elem2
);
},
$elem1
);
},
$array
);