0

我有一个这样的数组

array(
0 => "bar",
1 => "foo",
);

我想要这样的输出

array(
"bar" => "bar",
"foo" => "foo",
);

我怎样才能做到这一点?

4

3 回答 3

7

假设您的原始数组严格来说是一个数字数组

实际上也适用于非数字:

array_combine($array, $array);

http://codepad.org/fxOmIh2D

于 2012-08-23T09:59:15.783 回答
1
$arr = array(
0 => "bar",
1 => "foo",
);

$arrCombine = array_combine($arr, $arr);

print_r($arrCombine);
给

大批
(
    [酒吧] => 酒吧
    [foo] => 富
)
于 2012-08-23T10:32:14.373 回答
1

如果是非数字数组

使用值作为键的简单逻辑有效

$array1 = array(
   0 => "bar",
   "cat" => "foo",);
foreach($array1 as $key => $value)
{
    $array1[$value] = $value;
    unset($array1[$key]);
}

var_dump($array1);

array(2) {
  ["bar"]=>
  string(3) "bar"
  ["foo"]=>
  string(3) "foo"
}

如果它在上面严格使用答案,我猜会更快并且代码也更干净。

http://codepad.org/x3Z1zLjz

于 2012-08-23T10:08:17.863 回答