计算foreach循环中条件语句中的值

时间:2014-02-03 13:52:44

标签: php arrays foreach

我有以下foreach循环:

foreach($socialNetworks as $socialNetworksKey){    
    if($userUrl == NULL){
      echo $snName . ' is empty.' .  '<br/>';
     $value = 1;
    }
   elseif (strpos($userUrl,$snUrl) === false) { 
     echo $snName . '</b> address must start with <b>' . $snUrl  .  '</b><br/>';}
   else {
    echo 'Values are correct' .  '<br/>';
    $value = 1;
   }
 echo 'Value equals ' . count($value) .  '<br/>';
 }

foreach循环源是一个数组。 foreach循环可以根据需要正常工作。

虽然我希望得到$ value值的计数/总和。例如,如果数组的'if'和'else'语句是正确的,并且我有4个数组,则这将计为4.如果4个数组中的3个是正确的,则总和将为3。

我尝试使用它并且它工作here但是当我回显时它显示所有数字从一个并且总是进行求和,但我只想计算$ value并显示最终值; < / p>

2 个答案:

答案 0 :(得分:1)

您需要将回声置于foreach循环之外。我会做以下事情:

$value = 0;
foreach($socialNetworks as $socialNetworksKey){    
    if($userUrl == NULL){
      echo $snName . ' is empty.' .  '<br/>';
      $value++;
    }
   elseif (strpos($userUrl,$snUrl) === false) { 
      echo $snName . '</b> address must start with <b>' . $snUrl  .  '</b><br/>';}
   else {
      echo 'Values are correct' .  '<br/>';
      $value++;
   }
 }
 echo 'Value equals ' . $value .  '<br/>';

答案 1 :(得分:0)

我认为应该是

$value += 1;

相同
$value = $value + 1;

而不是

$value = 1;

你应该把这一行放在foreach循环之外

echo 'Value equals ' . count($value) .  '<br/>';

所以你应该有这个。

foreach($socialNetworks as $socialNetworksKey){    
    if($userUrl == NULL){
        echo $snName . ' is empty.' .  '<br/>';
        $value += 1;
    }elseif (strpos($userUrl,$snUrl) === false) { 
        echo $snName . '</b> address must start with <b>' . $snUrl  .  '</b><br/>';}
    else {
        echo 'Values are correct' .  '<br/>';
        $value += 1;
    }
}
echo 'Value equals ' . count($value) .  '<br/>';