检查forreach循环中变量值的变化

时间:2015-08-13 02:54:55

标签: php loops foreach

所以我有一个发送到PHP脚本的复选框。基本上,我的复选框当然会创建一个数组。看到它是$var[]个中的一个。

基本上,我的数组在代码中看起来像这样:

$vars = array('12345:0','45678:0','78910:0','3434:1','2345:1');

foreach ($vars as $var) {
    $vinfo = explode(":", $var);
    $vgroup = $vinfo[0];
    $vacct = $vinfo[1];

    // Various function calls with those variables. 
}

现在,正如你所看到的那样。我正在分拆vinfo和vaccount。在我的来源。我有两个帐户(在此示例中)。有些组属于0,有些组属于1.我想在foreach循环中switchAccount("details");变量发生变化时运行函数$vacct。在这种情况下,它应该只切换一次(默认为0)。

"帐户" ($vacct)切换根据复选框中的用户输入而有所不同。但是(通常)总是上升一个数字。再次,取决于管理员输入。

2 个答案:

答案 0 :(得分:8)

试试这个

# The application languages
# ~~~~~
play.i18n.langs = [ "en", "sv" ]

答案 1 :(得分:0)

我已将foreach替换为正常for,以便您可以获取"之前"的信息。迭代。这样您就可以检查$vacct中是否有变化。

for($i = 0; $i < count($vars); $i++){
    $vinfo = explode(":", $vars[$i]);
    $vgroup = $vinfo[0];
    $vacct = $vinfo[1];

    if($i > 0){ //Make sure we don't get a -1 index
        $previous = $vars[$i - 1]; //Get previous info
        $previous_info = explode(':', $previous);
        $previous_vacct = $previous_info[1];

        if($previous_vacct != $vacct){
            //Do switching function
        }
    }
}