对于循环递减顺序值

时间:2013-07-17 17:12:49

标签: php

问题 我已经使for循环减少但值 $ k 并没有相反的方式。下面是为了让它正常运行的代码,任何帮助都会很棒。

基本上我正在处理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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这应该有效:

$start = count($mainurlArr)-1;

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

(你可能需要交换到$k - $start,因为这会让我头疼,试图解决这个问题。

它从总计中减去当前索引,并显示该索引。我在循环之外初始化它以节省一些函数调用,并保持代码更整洁。

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