PHP中的数组推送购物车

PHP中的数组推送购物车,php,arrays,function,Php,Arrays,Function,我刚开始学习PHP课程。我被要求使用array\u push创建一个购物车函数。我不完全理解代码,有人能帮忙吗? 我创建了一个名为$cart的数组 $cart = [ 'user' => 'sholmes', 'items' => [$camera, $lens] 然后我们被要求创建一个名为createitem的函数,将商品放入购物车。答案如下: function create_item(&$cart, $item) { array_push($c

我刚开始学习PHP课程。我被要求使用array\u push创建一个购物车函数。我不完全理解代码,有人能帮忙吗? 我创建了一个名为$cart的数组

$cart = [
    'user' => 'sholmes',
    'items' => [$camera, $lens]
然后我们被要求创建一个名为createitem的函数,将商品放入购物车。答案如下:

 function create_item(&$cart, $item) {
    array_push($cart['items'], $item);

    return count($cart) - 1;
}
我不明白的是最后一行代码。为什么退货计数为$cart-1?我以为array_push的目的是将物品添加到购物车?我们老师把答案讲了一遍,但我不太明白。欢迎任何帮助! 谢谢
Vicki

函数
创建商品(&$cart,$item)
在您的情况下,与向
$cart
添加新商品一起返回最后添加商品的位置。
但是
数组推送
函数已经返回数组中新的元素数。
该函数可以简化为:

function create_item(&$cart, $item) {
    return array_push($cart['items'], $item) - 1;
}

在您的情况下,函数
创建商品(&$cart,$item)
与向
$cart
添加新商品一起返回最后添加的商品的位置。
但是
数组推送
函数已经返回数组中新的元素数。
该函数可以简化为:

function create_item(&$cart, $item) {
    return array_push($cart['items'], $item) - 1;
}

那么,
create\u item
应该返回什么?也就是说,99%的人确信“答案”是错的。如果是
返回计数($cart['items'))-1
,我几乎怀疑它是为了返回刚刚添加的项目的索引,但这样做对我来说没有任何意义。Create\u item是为了将项目添加到购物车中。我们的老师确实说模型答案不太正确,但她的解释对我来说没有意义。我想说,我们猜测什么错误答案可能会被如何解释是没有意义的。你应该再问问你的老师。这就是她在那里的目的。谢谢,在我们周四提出解决方案之前,我们将无法再次与她交谈,这就是我提出这个问题的原因。我想知道的是如何使代码工作,如果我能解释的话,那会很有帮助。那么,
create\u item
应该返回什么?也就是说,99%的人确信“答案”是错的。如果是
返回计数($cart['items'))-1
,我几乎怀疑它是为了返回刚刚添加的项目的索引,但这样做对我来说没有任何意义。Create\u item是为了将项目添加到购物车中。我们的老师确实说模型答案不太正确,但她的解释对我来说没有意义。我想说,我们猜测什么错误答案可能会被如何解释是没有意义的。你应该再问问你的老师。这就是她在那里的目的。谢谢,在我们周四提出解决方案之前,我们将无法再次与她交谈,这就是我提出这个问题的原因。我想知道的是如何让代码工作,如果我能解释的话,那会很有帮助。实际上OPs的“答案”并没有返回你期望它返回的值。这就是问题评论中所讨论的。实际上OPs“答案”并没有返回您期望它返回的值。这就是对问题的评论中所讨论的。