Create an assoc array with equal keys and values from a regular array

Viewed 37614

I have an array that looks like

$numbers = array('first', 'second', 'third');

I want to have a function that will take this array as input and return an array that would look like:

array(
'first' => 'first',
'second' => 'second',
'third' => 'third'
)

I wonder if it is possible to use array_walk_recursive or something similar...

3 Answers

You can use the array_combine function, like so:

$numbers = array('first', 'second', 'third');
$result = array_combine($numbers, $numbers);

This simple approach should work:

$new_array = array();
foreach($numbers as $n){
  $new_array[$n] = $n;
}

You can also do something like:

array_combine(array_values($numbers), array_values($numbers))

This should do it.

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
Related