Создание массива с ассоциативными ключами массива и численными значениями массива PHP

Я пытаюсь объединить два массива. Ассоциативный и числовой. $new_array = array_combine($array1, $array2) . Но он принимает значения из массива один и устанавливает их как ключи для нового массива, что и подразумевается под тем, что нужно делать.

Но мне нужно использовать ключи $ array1, чтобы быть ключами $ new_array, а значения $ array2 – значениями $ new_array. Я также рассмотрел вопрос о слиянии значений $ array2 с массивом $ array1, но он не работает должным образом, поскольку массивы не используют одни и те же ключи.

Вот пример.

 $array1 = "fname" => "NULL", "lname" => "NULL", "id" => "NULL"; $array2 = "john", "smith", "11123"; $new_array = "fname" => "john" , "lname" => "smith", id => "11123"; 

Я думал об использовании этого array_combine(array_flip($array1), $array2);

Но array_flip не может работать с NULL;

Используйте array_keys вместо array_flip следующим образом:

 $array1 = ["fname" => "NULL", "lname" => "NULL", "id" => "NULL"]; $array2 = ["john", "smith", "11123"]; $new_array = array_combine(array_keys($array1), $array2); print_r($new_array); 

Вывод:

 Array ( [fname] => john [lname] => smith [id] => 11123 ) 

Демо-версия eval.in

Вы можете просто перебрать и назначить

  $i = 0; foreach( $array1 as $key=>$value){ $new_array[$key]=> $array2[$i]; $i++; }