$ _ GET变量不能识别第一个数组元素

问题描述:

$ _ GET变量不能识别第一个数组元素:

我已经通过在URL数组,它看起来像这样

http://www.example.com/form.php?action=buy_now&ft=prf&Arrayproducts_id[]=431&products_id[]=432&Arraycart[]=1&cart[]=3&Arrayid[]=431&id[]=432

但是当我使用print_r($ _GET)打印阵列“products_id”和“cart”时,它只显示我

Array 
(
    [0] => 432 
) 
Array 
(
    [0] => 3 
) 

现在,你可以看到它的url也包含值“431”为products_id和“3”为购物车 我可以看到,由于字符串“数组”附加到这些他们没有被访问,所以有人可以建议我如何解决这个问题

编辑按菲利克斯审查

for($t=0;$t<4;$t++){ 

    $proid_30 .= "products_id[".$t."]=".$products_id."&"; 
     $bucket_30 .= "cart[".$t."]=".$_SESSION['qty_flex'][$t]."&"; 
     $idproid_30 .= "id[".$t."]=".$products_id."&"; 

     } 
     $idproid_30.=" "; 
$idproid_30 = str_replace("& ","",$idproid_30); 
     echo "<script>window.location= '/print_ready_form.php?action=buy_now&ft=prf&".$proid_30.$bucket_30.$idproid_30."&osCsid=".$_GET['osCsid']."';</script>"; 

看起来你echo数组来创建URL。这不起作用:

$a = array(1,2); 
echo $a; 

打印

Array 

你能证明生成URL的PHP​​代码?

更新:

没有更多的代码,我只能假设,但我认为$proid_30$bucket_30$idproid_30作为阵列初始化。现在,当你追加一个字符串,它们被铸造为字符串:

$a = array(1,2); 
$a .= 'test'; 
echo $a; 

打印

Arraytest 

使用新的变量来构建URL或将其初始化为字符串

例如:

$product = ''; 
$cart = ''; 
$id = ''; 
for($t=0;$t<4;$t++){ 
    $product .= "products_id[".$t."]=".$products_id."&"; 
    $cart .= "cart[".$t."]=".$_SESSION['qty_flex'][$t]."&"; 
    $id .= "id[".$t."]=".$products_id."&"; 
} 
+0

+1请参阅更新的问题 – 2010-06-23 12:01:09

+0

@OM永恒:可以显示更多的代码?这似乎只是它的一部分,我在那里找不到问题。 – 2010-06-23 12:04:31

+0

这就是问题在哪里费利克斯,因为你说的回声的URL是造成问题..我们正确的是..这是我们必须进行校正的地方,我不知道 – 2010-06-23 12:06:28

你可以在一个变量名中使用“var []” http形式。你需要只使用get方法吗?尝试后

它只显示432为​​,因为该链接中唯一的其他products_id被称为Arrayproducts_id

您将需要重命名此回​​=)

除非你想ofcourse打电话Arrayproducts_id。

+0

那是什么问题是我没有通过任何这个键名为“Arrayproducts_id”我想删除这个“数组”字符串中附加的url – 2010-06-23 11:55:32

+0

您是否可以编辑设置此URL的链接? – 2010-06-23 11:57:50

+0

plss查看更新 – 2010-06-23 12:03:09

第一个产品ID被命名为“Arrayproducts_id”。所以你可以打印“Arrayproducts_id”