У меня есть 2 массива, которые я хочу объединить на основе значения ключа в массиве 1. В приведенном ниже примере я хочу, чтобы game_modes помещались в games_list на основе ключа (id) в 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 игр в своей базе данных и каждой игре может иметь какое-то произвольное количество игровых режимов.
Теперь я мог легко сделать кучу циклов и избежать этого вопроса. На данный момент у меня нет тонны игровых режимов, введенных в базу данных, но я все время добавляю все больше. Со временем, делая экспоненциально больше циклов, все время в конечном итоге сделает скорость загрузки страницы в обход.
Я потратил время, чтобы поместить эти данные в memcache, чтобы ускорить выполнение вызовов в будущем.
Я никогда не был хорошим с array_map, поскольку я не совсем понимаю, как это работает, или если это даже правильный маршрут.
Я думал о делать это способ запроса, но тогда я бы кучу записей для каждой игры, основанной на количестве режимы игры. – Jayrox
@Jayrox: Я все еще верю, что запрос был бы более эффективным способом. Можете ли вы предоставить соответствующую таблицу/поля? –
таблица игр (id, game_name) games_modes table is (id, game_id, description) – Jayrox