[英]PHP add different key value to array without array_merge
我有一个带有一些固定值的设置数组,但我需要能够添加一个额外的键值,即变量
$settings = ['height' => 10, 'width' => 20, 'fit' => 'crop'];
return new Settings(
['detail' => array_merge($options, ['foo' => 'bar']), 'detail-l' => array_merge($options, ['foo2' => 'bar2'])],
['small' => array_merge($options, ['foo3' => 'bar2'])],
);
但我认为这不是最好的方法,我最好不要使用数组函数
我的预期结果将是 2 个看起来像这样的数组
[
'detail' => ['height' => 10, 'width' => 20, 'fit' => 'crop', 'foo' => 'bar'],
'detail-l' => ['height' => 10, 'width' => 20, 'fit' => 'crop', 'foo2' => 'bar2']
]
[
'small' => ['height' => 10, 'width' => 20, 'fit' => 'crop', 'foo3' => 'bar3']
]
使用splat运算符:
$settings = ['height' => 10, 'width' => 20, 'fit' => 'crop'];
return new Settings(
['detail' => ['foo' => 'bar', ...$settings], 'detail-l' => ['foo2' => 'bar2', ...$settings]],
['small' => ['foo3' => 'bar2', ...$settings]],
);
虽然我仍然相信array_merge
会用很少的开销做你想做的事,但这里有一个你可以使用的函数。
function pushToArray(array $data, string $key, $value)
{
$data[$key] = $value;
return $data;
}
它复制数组,添加键/值组合并返回副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.