【问题标题】:count conditional output in foreach loop在 foreach 循环中计算条件输出
【发布时间】:2013-01-08 10:27:38
【问题描述】:

我有这样的 foreach 循环

foreach($destinations as $destination)
{
if($destination=="abc")
{
 $msg = "Yes";
}
else
{
 $msg = "No";
}
}

如何计算“foreach 循环”外“if 语句”生成的“是”和“否”的数量?

【问题讨论】:

  • 这个问题是开玩笑的吧?一个称职的程序员怎么会不知道怎么做呢?
  • 这不是开玩笑,我只是从早上就厌倦了编码,因此我的思维水平现在处于最低点:D

标签: php if-statement foreach


【解决方案1】:

试试:

$yes = 0;
$no = 0;
foreach($destinations as $destination)
{
    if($destination=="abc")
    {
        $yes += 1;
    }
    else
    {
        $no += 1;
    }
}

echo "Yes " . $yes . "<br>" . "No " . $no;

【讨论】:

    【解决方案2】:

    在'if'语句中你可以试试这个

        $yesCount = 0;
        $noCount = 0;
        foreach($destinations as $destination)
        {
          if($destination=="abc")
          {
            $yesCount++;
            $msg = "Yes";
          }
          else
          {
            $noCount++;
            $msg = "No";
          }
    
        }
    

    但我不确定它是否可以在外面使用。

    【讨论】:

      【解决方案3】:
      $yesCount = 0;
      $noCount = 0;
          foreach($destinations as $destination) {
              if($destination=="abc") {
                  $msg = "Yes";
                  $yesCount = $yesCount + 1;
              }
              else {
                  $msg = "No";
                  $noCount = $noCount + 1;
              }
          }
      echo $yesCoynt . " --- " . $noCount;
      

      【讨论】:

        【解决方案4】:

        试试下面的例子:

        <?php
        $destinations = array('abc','def','ghi');
        foreach($destinations as $destination)
        {
        if($destination=="abc")
        {
         $msg = "Yes";
         $msg_yes_counter[]= "I'm in"; 
        }
        else
        {
         $msg = "No";
         $msg_no_counter[]= "I'm in";
        }
        }
        echo "YES -> My Count is :".count($msg_yes_counter);
        echo "NO -> My Count is :".count($msg_no_counter);
        ?>
        

        【讨论】:

          【解决方案5】:

          创建两个标志变量并尝试一下

          $yesFlag=0;
          $noFlag=0;
          foreach($destinations as $destination)
          {
           if($destination=="abc")
           {
            $msg = "Yes";
            $yesFlag++;  
           } 
           else
           {
             $msg = "No";
             $noFlag++;
           }
          }
          echo "no. of Yes:".yesFlag;
          echo "no. of NO:".noFlag;
          

          【讨论】:

            【解决方案6】:

            使用array_count_values()函数,这样就完全不需要循环了。

            array_count_values($destinations);
            

            【讨论】:

            • 如何计算$destinations"abc" 元素的数量?
            猜你喜欢
            • 1970-01-01
            • 2014-03-03
            • 2017-11-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-16
            • 1970-01-01
            • 2018-07-19
            相关资源
            最近更新 更多