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


85

我有一个看起来像的数组

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

我想要一个函数,将这个数组作为输入并返回一个看起来像这样的数组:

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

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


哇,非常感谢您的回答。前两个答案会起作用,但我只是在寻找更优雅的东西。
jimiyash

Answers:


172

您可以使用该array_combine函数,如下所示:

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

1
这对于单班轮来说很棒。以下是到期月份的用例:$ months = array_combine(range(date('Y'),date('Y')+ 10),range(date('Y'),date('Y')+ 10 ))。
2014年


0

这应该做。

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.