2014-07-20 30 views
0

變量,這是我的網址:使用內部爆炸的循環和PHP創建

http://example.com/shop-login.php?currency=USD&shipping=9.12&itemCount=2&item_name_1=+2014+New+Arriva+EGO+1500mAh+Big+Vape+HaKa+Twist+Variable+Voltage+Electronic+Cigarette+Battery+-+3+Optional+Colors&item_quantity_1=1&item_price_1=23.52&item_options_1=color%3A+Color%2C+pid%3A+5&item_name_2=+2014+hot+sell+2200mah+ego+Electronic+Cigarette+Battery+with+kgo+1+week+big+capacity+-+8+Optional+Colors&item_quantity_2=1&item_price_2=13&item_options_2=color%3A+Black%2C+pid%3A+6&Shipping_Option=EMS-Express 

和PHP代碼如下:

$item_count = (int) $_GET['itemCount']; 
$i = 1; 
$subtotal = (int) 0.00; 
$grandtotal = (int) 0.00; 
$items = array(); 

for ($i = 1; $i <= $item_count; $i++) { 
    $items[$i]['name'] = $_GET["item_name_".$i]; 
    echo "item_name_".$i .'='. $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 />' ; 
    //$item1 = explode (',', $items[$i]['options']); 
    //print_r($item1); 
    $subtotal += ($items[$i]['quantity'] * $items[$i]['price']); 
    $grandtotal = ($subtotal + $shipping_cost); 

我有$items[$i]['options']有值,如:

顏色:黃色,pid:5

顏色:黑色,PID:6

內部的for循環2分的產品。

我需要在for循環中將顏色和pid作爲兩個單獨的變量。 值分隔符是,我試着用爆炸。

我很困惑如何獲得$items[$i]['options']內的變量作爲循環內部的單獨變量。對於某些產品會有更多變量,如風味,尺寸等。

如何獲取顏色,pid或其他值(如風味,尺寸等)作爲每個產品ID的單獨變量。例如:color_1, pid_1, size_1 etc..etc

更新: 我得到了這個工作如下:

$itemexp1 = explode (",", $items[$i]['options']); 
foreach ($itemexp1 as $key => $dat){ 
$pid[$key] = explode(":", $dat); 
} 
+2

我可以問的第一件事 - 爲什麼要找這麼網址中有很多數據?你應該使用'$ _POST'或'$ _SESSION'而不是'$ _GET' –

+0

分解2次。首先在逗號上,然後在':' –

+0

@MarcinNabiałek我正在使用POSt ...爲了測試我正在使用GET。但不幸的是,這不是我的問題? – user3790186

回答

0

試試這個:

$items = $items[$i]['options']; 

$firstArray = explode(",", $items[0]); 
$secondArray = explode(":", $firstArray[0]); 
$color = $secondArray[1]; 

$firstArray = explode(",", $items[0]); 
$secondArray = explode(":", $firstArray[1]); 
$pId = $secondArray[1]; 

echo $color . " " . $pId; 
+0

$ color = $ secondArray [1]; $ pid = $ thirdArray [1];錯誤未定義偏移:1在 – user3790186

+0

糟糕。嘗試我的新編輯。 – simeg

+0

您的代碼無法正常工作.. – user3790186