Нужно сделать два двухмерных массива. Один с ключами, другой со значениями. Соединить их и вывести в браузере

$values = 
    ["Teacher", "philanthropist", "playboy", "genius",];
    ["Kirill", "KatasONoff", "Pantera", "23",];
    ["Europe", "Ukraine", "Dnipro", "ukrainets",];
    ["Elon Musk", "Tesla Roadster", "The Divine Comedy", "python",];

$keys = 
    ["post", "lifestyle_1", "lifestyle_2", "lifestyle_3",];
    ["name", "surname", "nickname", "age",];
    ["pt_world", "country", "sity", "national",];
    ["best_friend", "auto", "favorite_book", "pet",];

$array_done = array_combine($keys, $values);
echo "<pre>";
print_r($array_done);  
echo "</pre>"; 

проблема в том, что выводиться лишь один массив из 4 и нужно создавать собственную функцию.


Ответы (2 шт):

Автор решения: Anton Shchyrov
$array_done = [];
foreach ($keys as $idx => $curKey) {
  $array_done[] = array_combine($curKey, $values[$idx]);
}
echo "<pre>";
print_r($array_done);  
echo "</pre>"; 
→ Ссылка
Автор решения: teran

Если устранить некоторые странности в определении массивов keys/values в вашем коде, можно просто применить array_map:

$array_done = array_map('array_combine', $keys, $values);

Если после этого хочется слить все в один массив, то

$result = array_merge(...$array_done);

фидл - https://paiza.io/projects/-QRiMb76W_8Gun_oON8_Sw

→ Ссылка