我有 2 个数组,我想根据数组 1 中的键值进行合并。在下面的示例中,我希望根据 games_list 中的键 (id) 将 game_modes 放入 games_list。
数组 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 循环并一起避免这个问题。截至目前,我没有将大量游戏模式输入数据库,但我一直在不断添加更多。随着时间的推移,一直以指数方式执行更多循环最终会使页面加载速度变得缓慢。
我花时间将这些数据放入内存缓存中,以使将来的调用更快,避免循环。
我对 array_map 从来都不是很好,因为我不太了解它是如何工作的,或者它是否是正确的路线。