use*_*810 9 php multidimensional-array array-merge
假设我有以下数组:
Array
(
[0] => Array
(
[id] => 5
[name] => Education
)
[1] => Array
(
[id] => 4
[name] => Computers
)
[3] => Array
(
[id] => 7
[name] => Science
[4] => Array
(
[id] => 1
[name] => Sports
)
)
Run Code Online (Sandbox Code Playgroud)
第二个:
Array
(
[0] => Array
(
[id] => 1
[title] => Sport
)
[1] => Array
(
[id] => 7
[title] => Sci
)
[3] => Array
(
[id] => 4
[title] => Comp
[4] => Array
(
[id] => 5
[title] => Edu
)
)
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
Array
(
[0] => Array
(
[id] => 5
[name] => Education
[title] => Edu
)
[1] => Array
(
[id] => 4
[name] => Computers
[title] => Comp
)
[3] => Array
(
[id] => 7
[name] => Science
[title] => Sci
[4] => Array
(
[id] => 1
[name] => Sports
[title] => Sport
)
)
Run Code Online (Sandbox Code Playgroud)
我设法简单地合并这些数组:
foreach($first as $key => $value){
$result[$key] = array_merge($first[$key], $second[$key]);
}
Run Code Online (Sandbox Code Playgroud)
但输出未正确组合:
Array
(
[0] => Array
(
[id] => 5
[name] => Education
[title] => Sport
)
[1] => Array
(
[id] => 4
[name] => Computers
[title] => Sci
)
[3] => Array
(
[id] => 7
[name] => Science
[title] => Comp
[4] => Array
(
[id] => 1
[name] => Sports
[title] => Edu
)
)
Run Code Online (Sandbox Code Playgroud)
问题是我想将这些数组合并在一起id.期望的输出排序应与第一个数组中的相同.
我怎样才能做到这一点?任何帮助深表感谢.
你可以做一个嵌套循环,并检查id值匹配,然后加入title到$first(或name到$second)
foreach($first as $key => $value){
foreach($second as $value2){
if($value['id'] === $value2['id']){
$first[$key]['title'] = $value2['title'];
}
}
}
Run Code Online (Sandbox Code Playgroud)