2013-07-17 113 views
1

問題 我已for循環降低但沒有在相反的方式來的值。下面是正在運行的代碼,它可以幫助任何幫助。For循環遞減順序值

基本上我正在處理iFrame,我想取回父URL數據,因爲我使用$ _SERVER ['HTTP_REFERER']。我得到了完美的父URL,但是當我打破字符串時,我希望它以相反的方式。請看下面的實際和期望的結果。

網址:http://www.example.net/home?game_id=MyTeam11game_type=activity&auth=success

代碼

$mainurl = array(); 
$mainurl = parse_url($_SERVER['HTTP_REFERER']); 
$mainurl = array_slice($mainurl, 3, true); 
$mainurl = $mainurl['query']; 
$mainurlArr = explode('&', $mainurl); 
for($k=count($mainurlArr)-1; $k>=0; $k--){ 
    echo $mainurlArr[$k].' ,pos=> '.$k."<br />"; 
} 

實際輸出

auth=success ,Actual pos=> 2 
game_type=activity ,Actual pos=> 1 
game_id=Pranavs%20running12 ,Actual pos=> 0 

所需的輸出

auth=success ,Actual pos=> 0 
game_type=activity ,Actual pos=> 1 
game_id=Pranavs%20running12 ,Actual pos=> 2 
+0

你可以嘗試將它們放置在一個數組,然後數組反向:http://php.net/manual/en/function.array-reverse.php – Thew

回答

2
for($k=count($mainurlArr)-1, $i=0; $k>=0; $k--,$i++){ 
    echo $mainurlArr[$k].' ,pos=> '.$i."<br />"; 
} 
+0

隊友恐怕但是這不是真的沒什麼太大的幫助我想要的不僅是** $ i **的變化,而且我希望$ i與$ k相同。基本上我試圖**從LIFO(後進先出)格式獲得來自URL的**值。如果你能幫助我,那會很棒。 – colourtheweb

+0

@colourtheweb你真的嘗試過這個解決方案嗎?因爲它只是這樣做的:你得到LIFO結果,但你會得到越來越多的數字 – JimiDini

0

這應該工作:

$start = count($mainurlArr)-1; 

for($k=$start; $k>=0; $k--){ 
    echo $mainurlArr[$k].' ,pos=> '.($start - $k)."<br />"; 
} 

(您可能需要交換到$k - $start,因爲它使我的頭不疼試圖解決它)

它減去當前索引總數,並顯示。我在循環之外初始化它以節省幾個函數調用,並保持代碼更整潔。

+0

隊友我害怕,但這不是很有用,我想要的不僅是** $我**的變化,而且我希望$我是與$ k相同。基本上我試圖**從LIFO(後進先出)格式獲得來自URL的**值。如果你能幫助我,那會很棒。 – colourtheweb

0

我已經設法解決了這個問題,這裏是我正在尋找的解決方案。謝謝您的幫助。

$mainurl = array(); 
$mainurl = parse_url($_SERVER['HTTP_REFERER']); 
$mainurl = array_slice($mainurl, 3, true); 
$mainurl = $mainurl['query']; 
$mainurlArr = explode('&', $mainurl); 

$m = count($mainurlArr)-1; 
for($k=count($mainurlArr)-1; $k>=0; $k--){ 
    if($k == $m){ 
     $auth = substr($mainurlArr[$m],5); 
     $_REQUEST['auth'] = $auth; 
    }elseif($k == $m-1){ 
     $game_type = substr($mainurlArr[$m-1],10); 
     $_REQUEST['game_type'] = $game_type; 
    }elseif($k == $m-2){ 
     $game_id = substr($mainurlArr[$m-2],8); 
     $_REQUEST['game_id'] = $game_id; 
    } 
}