如何向ArrayList的最后一个子数组添加值?有没有更简洁的实现代码?
更短的实现方案
你不需要做截取、删除末尾元素、重新压入的冗余操作,直接操作二维数组末尾子数组的引用即可:
$a = [["1","2","3"],["a","b","c"]]; array_push(end($a), "d", "e"); print_r($a);
方案说明
end($a)会将数组$a的内部指针移动到最后一位,返回该位置元素的引用,这里就是你需要操作的末尾子数组["a","b","c"]- 直接用
array_push往这个引用指向的子数组追加元素,改动会直接同步到原数组$a,不需要额外修改原数组结构
如果担心end()移动数组内部指针产生副作用,也可以用下标访问的方式实现,兼容性更高:
$a = [["1","2","3"],["a","b","c"]]; array_push($a[count($a)-1], "d", "e"); print_r($a);
两种写法的运行结果和你原代码完全一致,仅需要1行核心逻辑就完成了需求。
内容的提问来源于stack exchange,提问作者FunHelp
相关产品推荐
相关产品推荐

