我有这个数组:
$a = array('b', 'c', 'd');
是否有一种简单的方法可以将数组转换为以下内容?
$a = array('b' => 'b', 'c' => 'c', 'd' => 'd');
答案 0 :(得分:343)
$final_array = array_combine($a, $a);
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;
}