2017-02-27 130 views
0

嘿,我需要你的帮助,这个练习。如何找出循环在foreach循环中每条条件执行多少次?

我有这样的阵列,我需要打印出各正,负,零数,然后后,我需要打印出号码的数量在例如每个进程的正数计数是2

你能帮我做这个吗?

全码:

<style> 
 
    body { 
 
     background: #333; 
 
    } 
 
</style> 
 

 
<?php 
 

 
$numbers = [10, 20, -20, -30, 0, 0, 0]; 
 
echo "<ul>"; 
 

 
foreach ($numbers as $number) { 
 
    if ($number > 0) { 
 
     echo "<li style='color: #080;'>Positive Number : {$number}</li><br />"; 
 
    } elseif ($number == 0) { 
 
     echo "<li style='color: #FF0;'>Zero Number : {$number}</li><br />"; 
 
    } elseif ($number) { 
 
     echo "<li style='color: #F00;'>Negative Number : {$number}</li><br />"; 
 
    } 
 
} 
 
echo "</ul>";

谢谢你们

+1

没有这样做自动的方式,你将不得不添加计数器变量,并在if条件下增加计数器变量。 –

回答

1

创建一个计数器。

<style> 
    body { 
     background: #333; 
    } 
</style> 

<?php 

$numbers = [10, 20, -20, -30, 0, 0, 0]; 
$counts = [0,0,0]; //positive,negative,zero 
echo "<ul>"; 

foreach ($numbers as $number) { 
    if ($number > 0) { 
$counts[0]++; 
     echo "<li style='color: #080;'>Positive Number : {$number}</li><br />"; 
    } elseif ($number == 0) { 
$counts[2]++; 
     echo "<li style='color: #FF0;'>Zero Number : {$number}</li><br />"; 
    } else { 
$counts[1]++; 
     echo "<li style='color: #F00;'>Negative Number : {$number}</li><br />"; 
    } 
} 
// access here 
echo "</ul>"; 
2

您必须声明计数器变量并在if条件中增加它们。

<style> 
    body { 
     background: #333; 
    } 
</style> 

<?php 

$numbers = [10, 20, -20, -30, 0, 0, 0]; 
echo "<ul>"; 

$positiveNumbers = 0; 
$negativeNumbers = 0; 
$zeros = 0; 

foreach ($numbers as $number) { 
    if ($number > 0) { 
     $positiveNumbers++; 
     echo "<li style='color: #080;'>Positive Number : {$number}</li><br />"; 
    } elseif ($number == 0) { 
     $zeros++; 
     echo "<li style='color: #FF0;'>Zero Number : {$number}</li><br />"; 
    } else { 
     $negativeNumbers++; 
     echo "<li style='color: #F00;'>Negative Number : {$number}</li><br />"; 
    } 
} 
echo "</ul>"; 
echo "Total Positive Numbers: $positiveNumbers<br/>"; 
echo "Total Negative Numbers: $negativeNumbers<br/>"; 
echo "Total Zeroes: $zeros<br/>"; 
+0

这非常明确,为我工作,谢谢你! –

+0

如果它符合您的目的,请将其标记为答案。谢谢。 – zahirdhada

0

如果你只是想在阵列中的负,正和零Ø打印总数,你可以做到这一点,如下:

<style> 
    body { 
     background: #333; 
    } 
</style> 

<?php 

$numbers = [10, 20, -20, -30, 0, 0, 0]; 
$totalPositive = 0; $totalNegative = 0; $totalZero = 0; 

echo "<ul>"; 

//Firstly count the number of positive, negative and zero 
foreach ($numbers as $number) { 
    if ($number > 0) { 
     $totalPositive++; 
    } elseif ($number == 0) { 
     $totalZero++; 
    } else { 
     $totalNegative++; 
    } 
} 
//print them all 
echo "<li style='color: #080;'>Positive Number : {$totalPositive}</li><br />"; 
echo "<li style='color: #FF0;'>Zero Number : {$totalZero}</li><br />"; 
echo "<li style='color: #F00;'>Negative Number : {$totalNegative}</li><br />"; 
echo "</ul>";