我需要合併一個數組與父數組的值。php數組合並父數組的值
$testArr=unserialize('a:6:{s:5:"queue";a:2:{i:6;s:1:"5";i:5;s:1:"2";}s:3:"sum";a:2:{i:6;s:3:"765";i:5;s:3:"2.1";}s:7:"sumAccD";a:2:{i:6;s:3:"543";i:5;s:3:"3.1";}s:7:"sumAccC";a:2:{i:6;s:2:"54";i:5;s:3:"3.3";}s:7:"comment";a:2:{i:6;s:12:"test comment";i:5;s:6:"111222";}s:3:"yt0";s:0:"";}');
$ret = array();
foreach ($testArr as $pkey => $pval) {
if (is_array($pval)) {
foreach ($pval as $pvkey => $pvval) {
$ret[$pvkey] = array($pkey => $pvval);
}
}
}
echo '<pre>', print_r($ret), '</pre>';
在這種情況下,打印出
Array
(
[6] => Array
(
[comment] => test comment
)
[5] => Array
(
[comment] => 111222
)
)
1
Unfortunally它打印出唯一的評論。我需要添加其他行:queue,sum,sumAccD,sumAccC。陣列必須如下所示:
Array
(
[6] => Array
(
[queue] => 5
[sum] => ''
....
[comment] => test comment
)
[5] => Array
(
[queue] => 2
[sum] => 2.1
....
[comment] => 111222
)
)
1
請幫助合併它們。 謝謝。
當我試圖合併它們: $ ret [$ pvkey]。= array($ pkey => $ pvval); 它打印 [6] => ArrayArrayArrayArrayArray [5] => ArrayArrayArrayArrayArray – Serge
這是因爲'.'是串並置運算符,因此,兩個操作數轉換爲字符串。轉換爲字符串的數組是PHP中的'Array'。不過,你可以用'+ ='合併數組。 –
替換 解決的問題$ ret [$ pvkey] = array($ pkey => $ pvval); 與 $ ret [$ pvkey] [$ pkey] = $ pvval; – Serge