Создайте массив-член с равными ключами и значениями из обычного массива

У меня есть массив, который выглядит как

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

Я хочу иметь функцию, которая будет принимать этот массив в качестве входных данных и возвращать массив, который будет выглядеть так:

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

Интересно, можно ли использовать array_walk_recursive или что-то подобное …

Вы можете использовать функцию array_combine , например:

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

Этот простой подход должен работать:

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

Вы также можете сделать что-то вроде:

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

Это должно сделать это.

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