我有这个数组:
$a = array('b', 'c', 'd');
有没有一种简单的方法将数组转换成下面的数组?
$a = array('b' => 'b', 'c' => 'c', 'd' => 'd');
发布于 2011-05-30 19:16:12
$final_array = array_combine($a, $a);
参考:http://php.net/array-combine
P.S.注意包含重复键的源数组,如下所示:
$a = ['one','two','one'];
注意重复的one
元素。
发布于 2016-08-01 21:26:49
请注意,使用$a = array_combine($a, $a);
提出的解决方案不适用于数值。
例如,我想要一个内存array(128,256,512,1024,2048,4096,8192,16384)
作为键和值,但是PHP手册中写道:
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值不会覆盖原始值,而是会被追加。
所以我是这样解决的:
foreach($array as $key => $val) {
$new_array[$val]=$val;
}
https://stackoverflow.com/questions/6175548
复制相似问题