30

pretty straightforward question actually..

is it possible in PHP to combine two separate arrays of the same length to one associative array where the values of the first array are used as keys in the associative array?

I could ofcourse do this, but I'm looking for another (built-in) function, or more efficient solution..?

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;
    }
}
Ropstah
  • 17,538
  • 24
  • 120
  • 194

4 Answers4

72

array_combine($keys, $values)

PS: Click on my answer! Its also a link!

Tyler Carter
  • 60,743
  • 20
  • 130
  • 150
15

you need array_combine.

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

print_r($c);
?>
OneOfOne
  • 95,033
  • 20
  • 184
  • 185
10

There’s already an array_combine function:

$combined = array_combine($keys, $values);
Gumbo
  • 643,351
  • 109
  • 780
  • 844
2

hello everybody i will show you how to merge 2 arrays in one array

we have 2 arrays and i will make one array from them

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

lets declare the main array

$main_array = array();

now let's fill it with the 2 arrays

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

now let's see the result by using var_dump($main_array);

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

i hope that can help someone :)

elaz
  • 121
  • 1
  • 5