Php 使用键将数组追加到多维数组中

Php 使用键将数组追加到多维数组中,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有两个多维数组,需要按特定键合并它们。我试过使用array\u merge\u recursive和array\u search,结果很差 所以 主要阵列: Array ( [group] => Array ( [subgroup] => Array ( [items] => Array (

我有两个多维数组,需要按特定键合并它们。我试过使用array\u merge\u recursive和array\u search,结果很差

所以

主要阵列:

Array ( [group] => Array ( [subgroup] => Array ( [items] => Array ( [item 1] => web development [item 2] => dba [item 3] => qa ) ) ) ) /* ------------ */ Array ( [item 1] => Array ( [User 1] => Array ( [properties] => Array ( [id] => conexion_1624 [name] => Jhon Doe ) ) [User 2] => Array ( [properties] => Array ( [id] => conexion_2001 [name] => Alice and Bob ) ) ) ) 排列 ( [组]=>阵列 ( [子组]=>数组 ( [项目]=>阵列 ( [项目1]=>网络开发 [项目2]=>dba [项目3]=>qa ) ) ) ) /* ------------ */ 排列( [项目1]=>阵列 ( [用户1]=>阵列 ( [属性]=>数组 ( [id]=>conexion_1624 [名称]=>Jhon Doe ) ) [用户2]=>阵列 ( [属性]=>数组 ( [id]=>conexion_2001 [姓名]=>爱丽丝和鲍勃 ) ) ) ) 预期结果:

Array ( [group] => Array ( [subgroup] => Array ( [items] => Array ( [item 1] => Array ( [User 1] => Array ( [properties] => Array ( [id] => conexion_1624 [name] => Jhon Doe ) ) [User 2] => Array ( [properties] => Array ( [id] => conexion_2001 [name] => Alice and Bob ) ) ) [item 2] => dba [item 3] => qa ) ) ) ) 排列 ( [组]=>阵列 ( [子组]=>数组 ( [项目]=>阵列 ( [项目1]=>阵列 ( [用户1]=>阵列 ( [属性]=>数组 ( [id]=>conexion_1624 [名称]=>Jhon Doe ) ) [用户2]=>阵列 ( [属性]=>数组 ( [id]=>conexion_2001 [姓名]=>爱丽丝和鲍勃 ) ) ) [项目2]=>dba [项目3]=>qa ) ) ) )
如果阵列结构没有改变

foreach($the2nd as $key => $item) 
  $the1st['group']['subgroup']['items'][$key] = $item;
由于评论中的讨论而更新

如果第1个数组中的项目可能不在同一级别,则此类代码将找到它们

array_walk_recursive ( 
     $the1nd , 
     function($v, $k, $the2nd) { if(isset($the2nd[$k])) $v = $the2nd[$k]; },
     $the2nd);

下面的代码应该可以得到您想要的结果

$result = array_merge($array1['group']['subgroup']['items'], $array2);

你想用2st数组中的item1值替换第一个数组中item1的值吗?您好@splash58,这是正确的。我需要将第二个数组(所有用户)中的所有值放入第一个数组中的项1键中。我尝试使用
array\u merge\u recursive($arr1,$arr2)
但只需附加第二个,但不在正确的子关键字中如果需要找到它,请使用代码
array\u walk\u recursive($1nd,函数($v,$k,$the2nd){if(isset($2nd[$k])$v=$the2nd[$k];},$the2nd)这就是我查找的原因,谢谢@splash58结构可能会改变,因为来自数据库查询的“item1”键是静态的。。因此,我尝试使用搜索功能查找密钥,然后附加另一个数组。在第二个数组
项1
中。。。是高级键。如果在路径
$1st['group']['subgroup']['items']
中的第二个项目中,无论数据如何更改,这两个代码都将工作。如果路径可能不相同,我们会发现什么-
第1项
?这是因为我正在寻找一个函数,该函数将返回我的路径,以查找进行合并的键,有时它不在4级。我在注释中对结构更改情况下的问题代码进行了说明