【发布时间】:2015-03-21 11:04:12
【问题描述】:
我有两个数组,由数组组成。我需要递归合并这些数组。但是我需要做几次这个动作,并且
array_merge_recursive()
将追加我的数据两次,我想删除目标数组中已经存在的元素。 $messages 数组:
array(2) {
["messages"]=>
array(2) {
["test.testik"]=>
string(13) "Це тест"
["test2313.tes31231tik"]=>
string(23) "це тестончик"
}
["validators"]=>
array(4) {
["valid.validik"]=>
string(36) "Це валідне значення"
["joga.jimbo"]=>
string(27) "Джімбо торбінс"
["validka.invalidka"]=>
string(23) "це інвалідка"
["smith.john"]=>
string(17) "джон сміт"
}
}
$allCar 数组:
array(2) {
["messages"]=>
array(1) {
["test2313.tes31231tik"]=>
string(23) "це тестончик"
}
["validators"]=>
array(2) {
["validka.invalidka"]=>
string(23) "це інвалідка"
["smith.john"]=>
string(17) "джон сміт"
}
}
我写了一些代码:
foreach ($messages as $domain => $messagesArray) {
foreach ($allCat as $d => $mess) {
if ($domain == $d) {
foreach ($messagesArray as $ymlkey => $trans) {
foreach ($mess as $ymlk => $transl) {
if ($ymlkey == $ymlk) {
unset($mess[$ymlk]);
}
}
}
}
}
}
然后,当我运行递归合并时,它会将相同的值附加到数组中。我做错了什么?
【问题讨论】:
-
您需要提供起始数组和预期结果。
-
@AbraCadaver,我添加了需要比较的数组。
标签: php arrays array-merge recursive-datastructures array-unset