PHP按值合并数组 [英] PHP merge arrays by value
问题描述
我知道这很容易通过foreach
,然后是while
-> list等程序来完成(我已经完成了),但是我感觉到我的代码有点脏,并且没有.看起来像是最好的解决方案...我正在寻找使用本机PHP数组函数执行以下操作:
I know this is quite easily accomplished with a foreach
, then a while
->list, etc procedure, (I have already accomplished it), however I sense that my code is a bit dirty and it doesn't look like the best solution... I'm looking to use native PHP array functions to do the following:
我有两个看起来像这样的数组:
I have two arrays that look like this:
[0] (Array)#2
[rank] "579"
[id] "1"
[1] (Array)#4
[rank] "251"
[id] "2"
[0] (Array)#2
[size] "S"
[status] "A"
[id] "1"
[1] (Array)#15
[size] "L"
[status] "A"
[id] "2"
因此,我需要以下内容:
And I need as a result something like the following:
[0] (Array)#2
[size] "S"
[status] "A"
[id] "1"
[rank] "579"
[1] (Array)#2
[size] "L"
[status] "A"
[id] "2"
[rank] "251"
有没有一种方法可以合并两个具有id
值的数组(或其他),而不必进入无穷无尽的foreach
s组?
Is there a way to be able to merge two arrays with the id
value (or ay other) without going into a endless set of foreach
s?
推荐答案
$array = array_merge_recursive($array1, $array2);
或创建自己的功能(可能会更快)
or make your own function (it may be faster)
function my_array_merge(&$array1, &$array2) {
$result = Array();
foreach($array1 as $key => &$value) {
$result[$key] = array_merge($value, $array2[$key]);
}
return $result;
}
$array = my_array_merge($array1, array2);
print_r($array);
这篇关于PHP按值合并数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!