数组复制值到PHP中的键

时间:2011-05-30 11:14:20

标签: php arrays

我有这个数组:

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

是否有一种简单的方法可以将数组转换为以下内容?

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

2 个答案:

答案 0 :(得分:343)

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

http://php.net/array-combine

P.S。
 
*注意类似的值。例如: 如果转换为重复键,则array('one','two','one')可能会出现问题:
array('one'=>..,'two'=>..,'one'=>...)

答案 1 :(得分:-3)

请注意,使用$a = array_combine($a, $a);建议的解决方案不适用于数值。

我想要一个内存array(128,256,512,1024,2048,4096,8192,16384)作为键和值,但PHP手册说明:

  

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加。

所以我这样解决了:

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