【问题标题】:Create an assoc array with equal keys and values from a regular array从常规数组创建一个具有相同键和值的关联数组
【发布时间】:2010-11-07 04:49:03
【问题描述】:

我有一个看起来像的数组

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

我想要一个函数,将这个数组作为输入并返回一个如下所示的数组:

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

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

【问题讨论】:

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

标签: php arrays


【解决方案1】:

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

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

【讨论】:

  • 这非常适合单行。这是到期月份的用例:$months = array_combine(range(date('Y'), date('Y') + 10), range(date('Y'), date('Y') + 10 ))。
【解决方案2】:

这个简单的方法应该可行:

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

你也可以这样做:

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

【讨论】:

  • array_combine 解决方案是最好的。
【解决方案3】:

应该这样做。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2022-01-12
    相关资源
    最近更新 更多