所以我有一个复选框发送到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。我想运行switchAccount("details");
函数只要在foreach循环中$vacct
变量有变化。在这种情况下,它应该只切换一次(因为0是默认值)。
"Account"($vacct
)开关根据用户在复选框中的输入而变化。但(通常)总是上升一个数字。同样,这取决于管理输入。
试试这个
$vars = array('12345:0','45678:0','78910:0','3434:1','2345:1');
$vacct = '';
foreach ($vars as $var)
{
$vinfo = explode(":", $var);
$vgroup = $vinfo[0];
if($vacct != $vinfo[1])
{
switchAccount("details");
$vacct = $vinfo[1];
}
}
我已经将您的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
}
}
}