Я пытаюсь объединить два массива. Ассоциативный и числовой. $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++; }