【发布时间】:2018-01-15 16:29:40
【问题描述】:
这样的事情有更短的解决方案吗?
$manufacturer = array();
if(!is_null($params->get('name'))){
$manufacturer['name'] = $params->get('name');
}
if(!is_null($params->get('link'))){
$manufacturer['link'] = $params->get('link');
}
if(!is_null($params->get('description'))){
$manufacturer['description'] = $params->get('description');
}
...
因此,只有当值不为空时,才应使用值设置数组的键。这有点短,但使用此解决方案,键将存在值为 NULL。但是当值为 NULL 时,它们甚至不应该存在:
$manufacturer = array(
'name' => !is_null($params->get('name')) ? $params->get('name') : null,
'link' => !is_null($params->get('link')) ? $params->get('link') : null,
'description' => !is_null($params->get('description')) ? $params->get('description') : null
);
编辑:
它应该适用于多维数组,并且数组键和参数键可能会有所不同
【问题讨论】:
-
foreach (['name', 'link', ...] as $key) if (!is_null($params->get($key))) ...也许……?