拉取$ _GET数据并使用循环创建多维数组

时间:2012-10-12 09:28:30

标签: php loops multidimensional-array

我正在为客户创建结帐,并通过$ _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 个答案:

答案 0 :(得分: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++;
    }

答案 1 :(得分: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;
}

答案 2 :(得分: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);

答案 3 :(得分: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},
    );
}