【发布时间】:2012-11-25 22:49:23
【问题描述】:
我有这个数组:
Array
(
[0] => Array
(
[name] => Ben
[matchedMovie] => Array
(
[name] => Saw
[genre] => Horror
[patheMovie] => Texas Chainsaw 3D
[patheMovieGenre] => Horror
[score] => 100.00
)
)
[1] => Array
(
[name] => Ben
[matchedMovie] => Array
(
[name] => Shooter
[genre] => Action, Thriller
[patheMovie] => The Shining
[patheMovieGenre] => Horror, Suspense/Thriller
[score] => 52.38
)
)
[2] => Array
(
[name] => Dick
[matchedMovie] => Array
(
[name] => Resident Evil Movie
[genre] => Action/Horror
[patheMovie] => Texas Chainsaw 3D
[patheMovieGenre] => Horror
[score] => 63.16
)
)
)
我想这样排序(不知道我是否完全正确):
Array
(
[0] => Array
(
[name] => Ben
[matchedMovie][0] => Array
(
[name] => Saw
[genre] => Horror
[patheMovie] => Texas Chainsaw 3D
[patheMovieGenre] => Horror
[score] => 100.00
)
[matchedMovie][1] => Array
(
[name] => Shooter
[genre] => Action, Thriller
[patheMovie] => The Shining
[patheMovieGenre] => Horror, Suspense/Thriller
[score] => 52.38
)
)
[1] => Array
(
[name] => Dick
[matchedMovie][0] => Array
(
[name] => Resident Evil Movie
[genre] => Action/Horror
[patheMovie] => Texas Chainsaw 3D
[patheMovieGenre] => Horror
[score] => 63.16
)
)
)
这样匹配的Movie 数组就在同一个名称下。 我该怎么做?
这个功能我试过了:
function group_by_key($array) {
$result = array();
foreach ($array as $sub) {
foreach ($sub as $k => $v) {
$result[$k][] = $v;
}
}
return $result;
}
但这不起作用。
【问题讨论】:
-
所以你在标题中提到了
sort,但在你的问题中没有。实际上,您是否也在尝试做某种类型的工作? -
我对这两个数组之间的区别有点困惑。或许您可以用文字概述您想要实现的目标。
-
对不起,我的英语不是最好的。我会试着解释一下。正如您在第一个多维数组中看到的,有一个名称被两次提及。我想将第二个名字的matchedMovie 与第一个合并。这样它就都在同一个名字下,每个名字都是唯一的。
-
您需要进行比较以查看它们是否具有相同的“名称”值。除非您使用 'name' 的值作为键,否则您可以直接将它们设置为相同的键。
标签: php multidimensional-array merge key