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

PHP 7.2.10中高效向多维数组指定键追加元素的优化方法问询

更简便高效的PHP 7.2.10实现方式

你的原有代码逻辑是没问题的,在PHP 7.2.10里确实有更简洁的写法,不用额外的中间变量,直接对目标数组操作即可:

方式一:直接使用array_merge更新find数组

既然不需要改动exclude数组,完全不用重新赋值整个分组数组,直接定位到find字段合并即可:

$cache_data['filters'][65]['find'] = array_merge($cache_data['filters'][65]['find'], $to_be_added);

这种写法省去了$existing_filters和$merged两个中间变量,代码更紧凑,逻辑也更直接。

方式二:利用数组展开运算符(PHP 7.1+支持)

PHP 7.1及以上支持数组展开运算符...,可以更直观地合并两个数组,可读性更强:

$cache_data['filters'][65]['find'] = [...$cache_data['filters'][65]['find'], ...$to_be_added];

这种写法看起来就像是把原有find数组的所有元素和新加入的ID依次展开,组合成新数组后赋值回去,语义清晰。

额外提示:处理find数组可能不存在的情况

如果担心目标分组的find数组可能未初始化(比如首次筛选时),可以用??空合并运算符兜底,避免报错:

// array_merge版本
$cache_data['filters'][65]['find'] = array_merge($cache_data['filters'][65]['find'] ?? [], $to_be_added);

// 展开运算符版本
$cache_data['filters'][65]['find'] = [...($cache_data['filters'][65]['find'] ?? []), ...$to_be_added];

这两种简化方式和你原有代码的执行效率几乎一致,主要优势在于代码更简洁、可读性更高,减少了不必要的中间变量操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:34:52