我有两个数组,我想要根据数组1中的键值进行合并。在下面的示例中,我希望将game_list放入基于key(id)的games_list中games_list。PHP合并基于特定数组键的数组
阵列1,它从一个充满的游戏表被拉:
$games_list = array(
0 => array(
'id' => 23,
'name' => 'Call of Duty: Modern Warfare 3'
),
2 => array(
'id' => 1,
'name' => 'Call of Duty: Black Ops'
)
);
阵列2,它从一个充满的游戏模式表被拉:
$game_modes = array(
0 => array(
'id' => 1,
'game_id' => 1,
'description' => 'Capture the Flag'
),
1 => array(
'id' => 2,
'game_id' => 1,
'description => 'Domination'
),
2 => array(
'id' => 3,
'game_id' => 23,
'description' => 'Kill Confirmed'
)
);
我想的结果是:
$games_list = array(
0 => array(
'id' => 23,
'name' => 'Call of Duty: Modern Warfare 3'
'modes' => array(
array(
'id' => 3,
'game_id' => 23,
'description' => 'Kill Confirmed'
)
)
),
2 => array(
'id' => 1,
'name' => 'Call of Duty: Black Ops'
'modes'=> array(
0 => array(
'id' => 1,
'game_id' => 1,
'description' => 'Capture the Flag'
),
1 => array(
'id' => 2,
'game_id' => 1,
'description => 'Domination'
)
)
)
);
其他信息,我正在使用的网站在其数据库中有71个游戏,每个游戏可以有一些任意数量的游戏模式。
现在,我可以轻松地做一堆for循环,并避免这个问题一起。截至目前,我没有大量的游戏模式进入数据库,但我一直在增加更多。随着时间的推移,指数级更多的循环将最终使页面加载速度陷入瘫痪。
我花时间将这些数据放入memcache中,以便将来的调用更快地避免循环。
我从来没有与array_map好,因为我不太明白它是如何工作,或者如果它甚至正确的路线。
我在想这样做的查询方式,但后来我不得不基础上的数量每场比赛一堆条目游戏模式。 – Jayrox
@Jayrox:我仍然相信,查询将是更有效的方式。你能提供相关的表格/字段吗? –
游戏桌只是(id,game_name) games_modes表是(id,game_id,description) – Jayrox