这是我的url:
http://example.com/shop-login.php?itemCount=1&item_name_1=+product1&item_quantity_1=1&item_price_1=23.52&item_options_1=color%3A+Color%2C+pid%3A+5&Shipping_Option=EMS-Express
以下php命令:
echo $_GET['item_name_1'];
正确地给出了product1的值。
但是下面的代码在for循环
上没有输出$i = 1;
for ($i = 1; $i < $item_count; $i++) {
$item_name_.$i = $_GET["item_name_".$i];
echo $item_name_.$i .'<br />' ;
$item_quantity_.$i = $_GET["item_quantity_".$i];
echo $item_quantity_.$i .'<br />' ;
$item_price_.$i = $_GET["item_price_".$i];
echo $item_price_.$i .'<br />' ;
$item_options_.$i = $_GET["item_options_".$i];
echo $item_options_.$i .'<br />' ;
}
我想在url中使用$_GET[] ????获取item_name_1, item_name_2等值
在处理编程任务时,您应该问自己是什么最适合您任务的数据结构。在这种情况下,我认为数组是更好的的方法。因此,考虑使用多维数组items
。
还注意到您的loop
条件是$i < $item_count
在你的例子中,$item_count将等于1,而1不是<1 .
$item_count = (int) $_GET['itemsCount'];
$i = 1;
$items = array();
for ($i = 1; $i <= $item_count; $i++) {
$items[$i]['name'] = $_GET["item_name_".$i];
echo $items[$i]['name'] .'<br />' ;
$items[$i]['quantity'] = $_GET["item_quantity_".$i];
echo $items[$i]['quantity'] .'<br />' ;
$items[$i]['price'] = $_GET["item_price_".$i];
echo $items[$i]['price'] .'<br />' ;
$items[$i]['options'] = $_GET["item_options_".$i];
echo $items[$i]['options'] .'<br />' ;
}
用${'item_name_'.$i}
代替$item_name_.$i
。在这里阅读更多关于变量的信息。
还要检查$item_count
的值。如果小于或等于1
,则不执行for
循环。
$i = 1;
for ($i = 1; $i <= $item_count; $i++) {
${'item_name_'.$i} = $_GET["item_name_".$i];
echo ${'item_name_'.$i} .'<br />' ;
${'item_quantity_'.$i} = $_GET["item_quantity_".$i];
echo ${'item_quantity_'.$i} .'<br />' ;
${'item_price_'.$i} = $_GET["item_price_".$i];
echo ${'item_price_'.$i} .'<br />' ;
${'item_options_'.$i} = $_GET["item_options_".$i];
echo ${'item_options_'.$i} .'<br />' ;
}
您可能会发现在使用
的上下文中使用多维数组会更容易。$i = 1;
$items = array();
for ($i = 1; $i <= $item_count; $i++) {
$items[$i] = array(
'name' => $_GET['item_name_'.$i],
'quantity' => $_GET['item_quantity_'.$i],
'price' => $_GET['item_price_'.$i],
'options' => $_GET['item_options_'.$i],
);
// Outputting statements here
}
使用如下数组
$arr = array();
for ($i = 1; $i < $item_count; $i++) {
if(isset($_GET["item_name_".$i]))
$arr['item_name'][] = $_GET["item_name_".$i];
if(isset($_GET["item_quantity_".$i]))
$arr['item_quantity'][] = $_GET["item_quantity_".$i];
if(isset($_GET["item_options_".$i]))
$arr['item_options'][] = $_GET["item_options_".$i];
}
print_r($arr);