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 回答