将值复制到PHP中的键

我有这个数组:

$a = array('b', 'c', 'd'); 

有一个简单的方法来将数组转换为以下?

 $a = array('b' => 'b', 'c' => 'c', 'd' => 'd'); 

$final_array = array_combine($a, $a);

http://php.net/array-combine

PS

*小心类似的值。 例如:
array('one','two','one')如果转换为重复键可能会有问题:
array('one'=>..,'two'=>..,'one'=>...)

小心,提出的解决scheme$a = array_combine($a, $a); 将不适用于数值。

我例如想要有一个内存array(128,256,512,1024,2048,4096,8192,16384)作为键和值,但是PHP手册指出:

如果input数组具有相同的string键,则该键的较晚值将覆盖前一个键。 但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会被追加。

所以我解决了这个问题:

 foreach($array as $key => $val) { $new_array[$val]=$val; }