31

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;
    }
}
1
  • 4
    "ass array", definitely an easy to recall name. ;) Commented Sep 14, 2015 at 10:04

4 Answers 4

74

array_combine($keys, $values)

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

Sign up to request clarification or add additional context in comments.

Comments

17

you need array_combine.

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

print_r($c);
?>

Comments

10

There’s already an array_combine function:

$combined = array_combine($keys, $values);

2 Comments

but array combine dosn't take null values into a new array. :(
@gumuruh Could you elaborate on that?
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 :)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.