我有以下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>
答案 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/>';