Php 在不破坏结构的情况下,将两个关联数组合并到一个数组中
我有一个数组:Php 在不破坏结构的情况下,将两个关联数组合并到一个数组中,php,arrays,multidimensional-array,associative-array,array-merge,Php,Arrays,Multidimensional Array,Associative Array,Array Merge,我有一个数组: $request = array( 'method' => 'Document.create', 'params' => Array ( 'document' => Array ( SOME DATA ), 'thirdaddress' => Array ( SOME DATA ), 'row' => Array (
$request = array(
'method' => 'Document.create',
'params' => Array (
'document' => Array ( SOME DATA
),
'thirdaddress' => Array ( SOME DATA
),
'row' => Array (
'1' => Array ( SOME DATA
),
'2' => Array ( SOME DATA
),
'4' => Array ( SOME DATA
),
)
)
);
我想在“2”键和“4”键之间“注入”此:
'3' => Array ( SOME DATA
),
我想用相同的结构注入:
$secondArray = array(
'params'=>Array(
'row'=> Array(
'3' => Array ( SOME DATA
),
)
)
);
我试过这个:1. <代码>$request['params']['row']['3']=$secondArray代码>
2. <代码>$request=array\u merge($request$secondArray)代码>
3. <代码>$request=array\u merge\u recursive($request,$secondArray)代码> 运动也不起作用。。我的那一排被卡在最后一排了。。 我已经做了一个实验
if(语句){
//$request=array\u merge\u recursive($request,$secondArray;
//$request['params']['row']['3']=$secondArray['params']['row']['3'];
$request['params']['row']['3']=$secondArray;
ksort(请求);
}
模具(转储($request));
我错在哪里?
谢谢。简单地插入它,这应该可以-
$request['params']['row']['3'] = Array(SOME DATA);
//This sorts the "row" keys -
ksort($request['params']['row'], SORT_NUMERIC)
关于第1点,你几乎很好,你只需要这一改变。
而不是:
$secondArray = array(
'params'=>Array(
'row'=> Array(
'3' => Array ( SOME DATA
),
)
)
);
试试这个:
$secondArray = array(SOME DATA);
尝试:
$request['params']['row']['3']=array(一些数据)
?这不是最好的解决方案,但可以解决问题:$request['params']['row']['3']=$secondArray['params']['row']['3'];
基于Jon的想法。@Bobby这段代码将“3”放在数组的末尾:/哦,我没有看到编辑。好了,现在我的代码不再有效了。递归将“3”放在$request的末尾,而不是在“2”和“4”键之间。你不能直接在“2”和“4”键之间插入“3”键。相反,你必须按照我的建议插入它d,然后使用ksort()对生成的$request['params']['row']数组进行手动排序。与其他方法一样,尝试ksort($request['params']['row']),将数组放在$requestAdd ksort的末尾($request['params']['row']);然后。它按键排序,这正是您想要的。此代码插入“是”,但在错误的位置,我需要介于“2”和“4”之间的“3”。@Azrael_404您可以使用带有sort_标志的ksort()作为sort_数字。请检查编辑。
<?php
$request = array(
'method' => 'Document.create',
'params' => Array (
'document' => Array ( SOME DATA
),
'thirdaddress' => Array ( SOME DATA
),
'row' => Array (
'1' => Array ( SOME DATA
),
'2' => Array ( SOME DATA
),
'4' => Array ( SOME DATA
),
)
)
);
$secondArray = array(
'params'=>Array(
'row'=> Array(
'3' => Array ('foo' => 'bar'),
)
)
);
$request = array_merge_recursive($request, $secondArray)