用于循环额外条件

时间:2014-04-15 15:09:55

标签: php if-statement for-loop

我有一个for循环,通过几个数组并在做一些基本数学后分配一些值。我的问题是:有没有办法确保这个for循环仅在附加条件为真时迭代?

for ($i = 0; $i < count($ci); $i++) {
    $PIDvalue = $ci[$i]["PID"];
    $datevalue = $pi[$i]["datetime"];
    $pp_tcvalue = $ci[$i]["pp_tc"] - $pi[$i]["pp_tc"];
    $pp_trvalue = $ci[$i]["pp_tr"] - $pi[$i]["pp_tr"];
    $bp_tcvalue = $ci[$i]["bp_tc"] - $pi[$i]["bp_tc"];
    $emailvalue = $ci[$i]["email"];

所以我想要这样的东西......

    for ($i = 0; $i < count($ci); $i++) {
    if($ci[$i]["email"] === $pi[$i]["email"]) {
    $PIDvalue = $ci[$i]["PID"];
    $datevalue = $pi[$i]["datetime"];
    $pp_tcvalue = $ci[$i]["pp_tc"] - $pi[$i]["pp_tc"];
    $pp_trvalue = $ci[$i]["pp_tr"] - $pi[$i]["pp_tr"];
    $bp_tcvalue = $ci[$i]["bp_tc"] - $pi[$i]["bp_tc"];
    $emailvalue = $ci[$i]["email"];

如果他们不匹配,我会指定一个&#34; 0&#34;什么的。

2 个答案:

答案 0 :(得分:1)

你可以为for循环添加一个额外的条件,使它几乎不可读:

for ($i = 0; $i < count($ci), $ci[$i]["email"] === $pi[$i]["email"]; $i++)

但我宁愿break循环:

for ($i = 0; $i < count($ci); $i++) {
    if ($ci[$i]["email"] !== $pi[$i]["email"]) break;
    $PIDvalue = ...

答案 1 :(得分:1)

您可以在for条件中添加,例如:

for ($i = 0; $i < count($ci) && $ci[$i]["email"] === $pi[$i]["email"]; $i++) {

当第二个条件计算为false时,循环将停止运行。