结合两个没有foreach的数组

时间:2013-12-19 10:42:58

标签: php

我正在建立一个邮件系统,我的输入是阵列数组,我需要将它们组合成一个,我已根据电子邮件进行汇总。
输入示例:

array(2) {
[0]=>
array(15) {
["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(6) "200122"
["email"]=>
string(21) "jon@gmail.com"
["content"]=>
string(34) "{"Notice":827,"co":3241,"Co":1555}"
}
[1]=>
array(15) {
["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(6) "592024"
["email"]=>
string(21) "jon@gmail.com"
["content"]=>
string(97) "{"Co":388,"co":5564,"xml":2982,"CO":6,"Warning":1957,"warning":42,"Notice":13,"cO":9,"Connect":6}"
}
}
array(1) {
[0]=>
array(15) {
["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(5) "19116"
["email"]=>
string(22) "kelly@gmail.com"
["content"]=>
string(8) "{"co":1}"
}
}    

邮件功能的输入数组应如下所示:

array(1) {
[0]=>
array(15) {
["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(6) "200122"
["email"]=>
string(21) "jon@gmail.com"
["content"]=>
string(34) "{"Notice":827,"co":3241,"Co":1555}"

["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(6) "592024"
["email"]=>
string(21) "jon@gmail.com"
["content"]=>
string(97) "      {"Co":388,"co":5564,"xml":2982,"CO":6,"Warning":1957,"warning":42,"Notice":13,"cO":9,"Conne    ct":6}"
}
}
array(1) {
[0]=>
array(15) {
["enabled"]=>
string(1) "1"
["file_size_bytes"]=>
string(5) "19116"
["email"]=>
string(22) "kelly@gmail.com"
["content"]=>
string(8) "{"co":1}"
}
}

它的基本配偶是组合同一阵列中的两个数组 我怎样才能做到这一点?谢谢:))

2 个答案:

答案 0 :(得分:1)

由于数组中的重复键在PHP中是不可能的,因此无法获得所需的结果。

e.g。

["content"] => string(34) "{"Notice":827,"co":3241,"Co":1555}"

将替换为

["content"] => string(97) "{"Co":388,"co":5564,"xml":2982,"CO":6,"Warning":1957,"warning":42,"Notice":13,"cO":9,"Connect":6}"

答案 1 :(得分:1)

您只需使用array_merge功能即可完成此操作。

在他们的回答中,Maarten建议这是不可能的,因为重复的密钥会被覆盖。但是,这仅在键不是数字时发生。在上面的示例中,第一个数组的键为0和1,第二个数组的键仅为0.所有数字。

所以你需要做的就是:

array_merge($array1,$array2);