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

如何有条件设置PHP数组维度?简化数组赋值代码方案

PHP代码简化方案

原代码逻辑:

if($flag) {
    $data['record'] = $item['currentData'];
} else {
    $data['record']['date'] = $item['currentData'];
}

你尝试的$data['record'] + $flag && ['date'] = $item['currentData'];不符合PHP语法规则,无法直接运行。下面提供几种简洁的合法实现方式:

方式一:三元运算符直接执行赋值

$flag ? ($data['record'] = $item['currentData']) : ($data['record']['date'] = $item['currentData']);

这种写法完全等价于原逻辑,把分支判断压缩成一行代码,可读性也不错。

方式二:通过引用目标变量统一赋值

// 先获取要赋值的目标引用
$target = $flag ? &$data['record'] : &$data['record']['date'];
// 统一赋值
$target = $item['currentData'];

适合需要多次对同一目标操作的场景,只需要修改一次目标变量即可。

方式三:保留原有record数据的合并写法(适用于$flag为false时)

如果$data['record']原本已有其他键值,且希望$flag为false时只更新date字段而不覆盖整个数组,可以用:

$data['record'] = $flag ? $item['currentData'] : array_merge($data['record'], ['date' => $item['currentData']]);

注意:如果$data['record']初始未定义,需要先确保它是数组,否则array_merge会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:22:03