You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将数组值转为键并设固定值true?无需foreach循环

回答

当然有!PHP 里正好有个专门适配这种需求的内置函数——array_fill_keys(),完全不用写foreach循环来手动构建新数组。

核心解决方案:array_fill_keys()

这个函数的作用就是将传入的数组元素作为新数组的键名,同时给所有键设置一个固定的对应值,完美匹配你的需求。

示例代码:

// 原数组
$originalArray = ['lorem ipsum', 'dolor sit amet', 'consectetur adipiscing elit'];

// 一键转换
$resultArray = array_fill_keys($originalArray, true);

执行后$resultArray的结构就是你想要的:

Array (
    'lorem ipsum' => true,
    'dolor sit amet' => true,
    'consectetur adipiscing elit' => true
)

替代方案(兼容旧版本PHP)

如果你的PHP版本特别老(不过array_fill_keys()从PHP 5.2.0就已支持,现在几乎没人用这么旧的版本了),可以用array_combine()配合array_fill()来实现:

$resultArray = array_combine(
    $originalArray,
    array_fill(0, count($originalArray), true)
);

原理是先用array_fill()生成一个和原数组长度相同、所有元素都是true的数组,再通过array_combine()把原数组的元素作为键,填充好的数组作为值组合起来。

关于array_flip()的补充

你提到的array_flip()确实没法满足需求,因为它只是交换原数组的键和值,没法统一设置固定的true值,所以确实不适用这个场景。

内容的提问来源于stack exchange,提问作者MAX POWER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:33:35