从常规数组中创建具有相等键和值的 assoc 数组

我有一个类似于

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

我希望有一个函数,它将采用这个数组作为输入,并返回一个数组,看起来像:

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

我想知道是否有可能使用 array_walk_recursive或类似的东西..。

38183 次浏览

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;
}

You can use the array_combine function, like so:

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