【发布时间】:2021-12-29 13:25:39
【问题描述】:
我有一个索引数组,其中包含任意数量的嵌套关联数组或索引数组。 如果每个数组包含一个键“香蕉”,我需要在每个数组中递归插入一个新的键/值对“苹果”。
$original = [
0 => [
'something1' => 'something',
'banana' => 'yellow',
'something2' => [
'something3' => 'something',
'something4' => [
'something5' => 'something',
'banana' => 'yellow',
'something6' => [
'banana' => 'yellow',
]
],
'banana' => 'yellow',
],
'something7' => [
0 => [
'something8' => 'something',
'banana' => 'yellow',
],
],
],
1 => [
'something9' => 'something',
'banana' => 'yellow',
],
2 => [
'something10' => 'something',
],
];
这是预期的结果 - 'apple' 不必立即插入到 'banana' 旁边,它可以位于同一级别数组中的任何位置,只要它是 'banana' 的兄弟。
$new = [
0 => [
'something1' => 'something',
'banana' => 'yellow',
'apple' => 'red',
'something2' => [
'something3' => 'something',
'something4' => [
'something5' => 'something',
'banana' => 'yellow',
'apple' => 'red',
'something6' => [
'banana' => 'yellow',
'apple' => 'red',
]
],
'banana' => 'yellow',
'apple' => 'red',
],
'something7' => [
0 => [
'something8' => 'something',
'banana' => 'yellow',
'apple' => 'red',
],
],
],
1 => [
'something9' => 'something',
'banana' => 'yellow',
'apple' => 'red',
],
2 => [
'something10' => 'something',
],
];
我可以找到有关如何在平面数组中的某个键之后插入键/值对的答案,但找不到在多维数组中递归执行此操作的答案。
【问题讨论】:
-
你的数组键在同一层重复!! BTW 这样操作的目的是什么?
-
首先在创建数组之前进行插入不是有意义吗?
-
该数组在PHP中通过json_decode()生成的数据库中存在JSON,以便可以对其进行操作,目标是然后json_encode() $new数组以替换原始数据分贝。
标签: php arrays multidimensional-array