我有一个类似的数组
array(
0 => "bar",
1 => "foo",
);
我想要像这个一样的输出
array(
"bar" => "bar",
"foo" => "foo",
);
我怎样才能做到这一点?
假设您的原始数组严格为数字数组:
实际上也适用于非数字:
array_combine($array, $array);
http://codepad.org/fxOmIh2D
$arr = array(
0 => "bar",
1 => "foo",
);
$arrCombine = array_combine($arr, $arr);
print_r($arrCombine);
给予大堆([bar]=>bar[foo]=>foo)
在非数字数组的情况下
使用价值作为关键工作的简单逻辑
$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