2017-02-07 2 views
1

私はちょうどPHPコースを開始しました。 array_pushを使用してショッピングカート機能を作成するように求められました。私は完全にコードを理解していない、誰も助けることができますか? 私は$カートPHPでショッピングカートをプッシュ

$cart = [ 
    'user' => 'sholmes', 
    'items' => [$camera, $lens] 

という配列を作成した私たちは、その後、ショッピングカートにアイテムを置くために、アイテムを作成すると呼ばれる関数を作成するように求めていました。答えは以下の通りです:

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

    return count($cart) - 1; 
} 

最後のコード行はわかりません。なぜリターンカウント$カート-1ですか?私はarray_pushのポイントはカートにアイテムを追加することだと思った?私たちの先生は解決策を話しましたが、私はそれをあまり理解していません。助けを歓迎します! $cart戻って最後に追加された項目の位置に新しい項目を追加するとともに、 おかげ ヴィッキー

+0

まあ、 'create_item'を返すために何を想定していますか? 99%は「答え」が間違っていると確信しています。 – Madbreaks

+3

'return count($ cart ['items']) - 1;'だったら、ちょうど追加された項目のインデックスを返すことが意図されていたと思われますが、意味をなさない私はそれをそのようにする。 –

+0

作成_itemは、ショッピングカートに商品を追加するためのものです。私たちの先生は、モデルの答えが間違っていると言っていましたが、彼女の説明は私には意味がありませんでした。 –

答えて

0

機能あなたのケースでcreate_item(&$cart, $item)
しかし、array_push関数はすでにで配列の新しい要素数を返します。
関数は、次のように簡略化することができます

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

http://php.net/manual/en/function.array-push.php

+0

実際には、OPの "回答"は返すと期待している値を返しません。それは質問へのコメントで議論されているものです。 – arkascha

関連する問題