如何正确使用array_push处理键与数组值?排查参数不足警告
问题分析与解决方法
这个问题其实是array_push()的用法搞错啦😉,咱们一步步拆解来看:
为什么会出现警告?
你写的这行代码:
array_push($post_likes[$current_user->ID] = $new_likes);
array_push()的正确语法要求至少2个参数:第一个是要操作的目标数组,第二个及以后是要推入数组的元素。但你这里只传了一个参数——$post_likes[$current_user->ID] = $new_likes是一个赋值表达式,它的结果是$new_likes的值,但这显然不符合array_push()的参数要求,所以PHP才会抛出“expects at least 2 parameters”的警告。
正确的实现方式
你的需求是给$post_likes这个关联数组添加一个新的键($current_user->ID),对应的值是$new_likes数组。这种场景下,直接赋值是最简洁高效的方式,完全不需要用到array_push():
$post_likes[$current_user->ID] = $new_likes;
这样写既符合PHP数组的操作逻辑,也能完美实现你要的“将带数组值的新键推入原数组”的效果,而且不会有任何警告。
补充:什么时候用array_push()?
array_push()主要适合往索引数组的末尾添加元素(比如$arr = [1,2]; array_push($arr,3);),对于关联数组添加键值对的场景,直接赋值是更常规的做法。
内容的提问来源于stack exchange,提问作者user6135434
相关产品推荐
相关产品推荐

