array_pad的填充方向由$size正负号决定:正数在末尾填充,负数在开头填充;仅比较abs($size)与数组长度,相等或更小时不填充,关联数组转为索引数组,填充值重复使用。

array_pad 的填充方向完全由 $size 参数的正负号决定,不涉及“边界限制”这类概念——它只看当前数组长度与目标长度的数值关系。
正数 $size:在末尾填充
当 $size 为正,且大于原数组长度时,新元素追加到数组末尾:
- 例如
$arr = [1, 2]; array_pad($arr, 5, 'x')→[1, 2, 'x', 'x', 'x'] - 若 $size ≤ 当前长度(如
array_pad([1,2,3], 2, 'x')),函数直接返回原数组副本,不做任何填充
负数 $size:在开头填充
当 $size 为负,且其绝对值大于原数组长度时,新元素插入到数组最前面:
- 例如
$arr = [1, 2]; array_pad($arr, -4, 'y')→['y', 'y', 1, 2](目标总长是 4,前面补 2 个) - 注意:-4 不代表“加 4 个”,而是“最终数组要有 4 个元素”,所以补的数量 = |$size| − count($arr)
- 若 |$size| ≤ 当前长度(如
array_pad([1,2,3], -2, 'y')),同样不填充,原样返回
没有“边界限制”,只有长度比较逻辑
array_pad 不检查键名、数据类型或内容边界。它只做一件事:比较 abs($size) 和 count($array):
- 前者更大 → 按方向填充差额个数
- 前者更小或相等 → 零操作,返回副本
- 关联数组会被转为索引数组(键名丢失),填充后全是数字下标
填充值重复使用,不递增也不回调
无论要填几个位置,$value 都原样复用:
-
array_pad([1], 4, ['a','b'])→[1, ['a','b'], ['a','b'], ['a','b']] - 不支持自增数字、时间戳或动态生成值;如需此类行为,得手动循环或用其他函数组合











