Заменить ключи массива значением из другого массива

У меня есть структура массива, как показано ниже.

Array ( [1] => Dept1 [2] => Dept2 [3] => Dept3 ) 

И у меня есть другой массив, как показано ниже.

 Array ( [1] => Array ( [user1] => 58 [user3] => 75 ) [2] => Array ( [user6] => 162 ) [3] => Array ( [user7] => 2 [user8] => 126 [user9] => 148 ) ) 

я хочу

 Array ( [Dept1] => Array ( [user1] => 58 [user3] => 75 ) [Dept2] => Array ( [user6] => 162 ) [Dept3] => Array ( [user7] => 2 [user8] => 126 [user9] => 148 ) ) 

Числами во втором массиве являются номера отделов. И их значения присутствуют в первом массиве. Я хочу заменить номер отдела во втором массиве значением из первого массива.

Я пытался с array_replace (), но не добился успеха.

Пожалуйста помоги

заранее спасибо

Если у второго массива меньше элементов, чем ваш массив поиска или если ключи не совпадают с порядком, вам нужно сначала сопоставить значения ключей, а затем объединить массивы с помощью array_combine() .

 array_combine(array_map(function($key) use ($depts) { return $depts[$key]; // translate key to name }, array_keys($dept_values)), $dept_values)); 

В противном случае вы можете сразу их объединить:

 array_combine($depts, $dept_values); 

См. Также: array_map()

Попробуй это. В основном соединение и взрыв будут выполнять вашу работу.

 <html> <head> <title>Copy to new array</title> </head> <body> <?php $dept= array('Dept1', 'Dept2', 'Dept3', 'Dept4'); $temp= join(",",$dept); $department=explode(",",$temp); echo "The first element in new array is: " . $department[0]; echo " and the second element in new array is: " . $department[1]; ?> </body> </html> 

Этот код работает как ожидалось для меня:

Код PHP:

 <?php print_r(array_combine($firstArray, $secondArray)); ?> 

Выход массива:

 Array ( [Dept1] => Array ( [user1] => 58 [user3] => 75 ) [Dept2] => Array ( [user6] => 162 ) [Dept3] => Array ( [user7] => 2 [user8] => 126 [user9] => 148 ) )