1

私は顧客のチェックアウトを作成しており、カートの内容に関するデータが$ _GETを介して(今のところ)ページに送信されています。

そのデータを抽出し、ループを使用して多次元配列にデータを入力したいと思います。

データに名前を付ける方法は次のとおりです。

$itemCount = $_GET['itemCount'];
$i = 1;
while ($i <= $itemCount) {
  ${'item_name_'.$i} = $_GET["item_name_{$i}"];
  ${'item_quantity_'.$i} = $_GET["item_quantity_{$i}"];
  ${'item_price_'.$i} = $_GET["item_price_{$i}"];
  //echo "<br />Name: " .${'item_name_'.$i}. " - Quantity: " .${'item_quantity_'.$i}. " - Price: ".${'item_price_'.$i};
  $i++;
}

ここから、次のような多次元配列を作成したいと思います。

Array
(
[Item_1] => Array
  (
  [item_name] => Shoe
  [item_quantity] => 2
  [item_price] => 40.00
  )
[Item_2] => Array
  (
  [item_name] => Bag
  [item_quantity] => 1
  [item_price] => 60.00
  )
[Item_3] => Array
  (
  [item_name] => Parrot
  [item_quantity] => 4
  [item_price] => 90.00
  )
  .
  .
  .
)

私が知りたいのは、既存のwhileループでこの配列を作成できる方法があるかどうかです。空の配列をデラックした後のように、配列にデータを追加できることは知ってい$data = []ますが、実際の構文ではわかりません。

たぶん私は完全に正しい軌道から外れていて、それを行うためのより良い方法がありますか?

ありがとう

4

4 に答える 4

1

このようなことを試してください...

   $itemCount = $_GET['itemCount'];
    $i = 1;
    $items = array();

    while ($i <= $itemCount) {
      $items['Item_'.$i]['item_name'] = $_GET["item_name_{$i}"];
      $items['Item_'.$i]['item_quantity'] = $_GET["item_quantity_{$i}"];
      $items['Item_'.$i]['item_price'] = $_GET["item_price_{$i}"];
      $i++;
    }
于 2012-10-12T09:34:08.390 に答える
0
$result = array();
$itemCount = $_GET['itemCount'];

$i = 1;
while ($i <= $itemCount) {
  $tmp = array();
  $tmp['item_name'] = $_GET["item_name_{$i}"];
  $tmp['item_quantity'] = $_GET["item_quantity_{$i}"];
  $tmp['item_price'] = $_GET["item_price_{$i}"];
  //echo "<br />Name: " .${'item_name_'.$i}. " - Quantity: " .${'item_quantity_'.$i}. " - Price: ".${'item_price_'.$i};
  $i++;
  $result['Item_{$i}'] = $tmp;
}
于 2012-10-12T09:34:21.893 に答える
0
$itemCount = $_GET['itemCount'];
$i = 1;
my_array = [];
while ($i <= $itemCount) {
  ${'item_name_'.$i} = $_GET["item_name_{$i}"];
  ${'item_quantity_'.$i} = $_GET["item_quantity_{$i}"];
  ${'item_price_'.$i} = $_GET["item_price_{$i}"];
  //echo "<br />Name: " .${'item_name_'.$i}. " - Quantity: " .${'item_quantity_'.$i}. " - Price: ".${'item_price_'.$i};

my_array["Item_".$i] = array(
   "item_name"=>$_GET["item_name_{$i}"],
   "item_quantity"=>$_GET["item_quantity_{$i}"],
   "item_price"=>$_GET["item_price_{$i}"]
);

  $i++;
}

var_dump(my_array);
于 2012-10-12T09:35:00.427 に答える
0
$arr = array();
for($i = 1; isset(${'item_name_'.$i}); $i++){
    $arr['Item_'.$i] = array(
        'item_name' => ${'item_name_'.$i},
        'item_quantity' => ${'item_quantity_'.$i},
        'item_price' => ${'item_price_'.$i},
    );
}
于 2012-10-12T09:35:53.000 に答える