PHP - объединить два массива (одинаковой длины) в один ассоциативный?

довольно простой вопрос на самом деле..

возможно ли в PHP комбинировать два отдельных массива одинаковой длины с одним ассоциативным массивом, где значения первого массива используются как ключи в ассоциативном массиве?

Я мог бы, конечно, сделать это, но я ищу другую (встроенную) функцию или более эффективное решение..?

function Combine($array1, $array2) {
    if(count($array1) == count($array2)) {
        $assArray = array();
        for($i=0;$i<count($array1);$i++) {
            $assArray[$array1[$i]] = $array2[$i];
        }
        return $assArray;
    }
}

Ответы

Ответ 2

вам нужно array_combine.

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Ответ 4

привет всем, я покажу вам, как объединить 2 массива в один массив

у нас есть 2 массива, и я сделаю из них один массив

 $data_key  = array('key1','key2');
 $data_value = array('val1','val2');

позволяет объявить основной массив

$main_array = array();

теперь можно заполнить его двумя массивами

foreach ($data_key as $i => $key) {
         $main_array[$key] = $data_value[$i];
}

теперь посмотрим результат, используя var_dump($main_array);

array(2) { 
["key1"]=> string(4) "val1"
["key2"]=> string(4) "val2" 
}

Я надеюсь, что это может помочь кому-то:)