如何将数组值转换为数组索引,数组值在Php中保持不变

时间:2012-08-23 09:58:19

标签: php arrays arraylist associative-array

我有一个像这样的数组

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

我想要像这样输出

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

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:7)

假设您的原始数组是严格的数字数组

实际上也适用于非数字:

array_combine($array, $array);

http://codepad.org/fxOmIh2D

答案 1 :(得分: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

答案 2 :(得分:1)

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

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

print_r($arrCombine);
gives

Array
(
    [bar] => bar
    [foo] => foo
)