PHP中如何将一维索引数组的值同时设为键和值?有无原生函数实现?
解决方案
PHP提供了原生内置函数可以一行实现该需求,最匹配需求的写法使用array_combine方法:
$options = array_combine($array, $array);
方法说明
array_combine接收两个数组作为入参,第一个数组的值会作为新数组的键,第二个数组的值会作为新数组对应位置的值,把原数组同时作为两个参数传入,就能直接实现键值完全相同的效果,逻辑和你写的foreach遍历完全等价。
其他可选场景写法
如果你需要的是所有值统一为某个固定值的场景(比如统一设为true、1),可以用array_fill_keys:
// 示例:所有值设为true $options = array_fill_keys($array, true);
注意事项
- 上述实现效果和手写foreach逻辑完全一致:如果原数组存在重复元素,最终生成的数组只会保留最后出现的那组键值对
- 数组键名会遵循PHP默认的键名转换规则,比如纯数字字符串会自动转为整型键
内容的提问来源于stack exchange,提问作者jojo
相关产品推荐
相关产品推荐

