给出以下数组:
Array
(
[0] => 'lorem ipsum'
[1] => 'dolor sit amet'
[2] => 'consectetur adipiscing elit'
)
将此转换为以下内容的最佳方法是:
Array
(
['lorem ipsum'] => true
['dolor sit amet'] => true
['consectetur adipiscing elit'] => true
)
除了预测和创建新阵列?是否有任何内置的PHP函数可以为我做这个?
新数组中键的值始终是固定值,即true
。
我查看array_flip,但不认为这会允许我应用固定值。
答案 0 :(得分:3)
正如AlivetoDie指出的那样,你可以使用没有内置的单一呼叫方法。但是,如果您只想省略foreach
(并创建中间结果),则以下是一个单行解决方案:
$out = array_combine($in, array_fill(0, count($in), true));
或:
$out = array_map(function () { return true; }, array_flip($in));
如果您需要更多控制权。