【问题标题】:Multiple counters not counting ( foreach / ifs)多个计数器不计数(foreach / ifs)
【发布时间】:2014-07-14 21:51:35
【问题描述】:

这是我的第一篇 StackOverFlow 帖子。

我有一个数字数组,我将其随机排列:

$nums = array("1","1","1","1","1","2","2","2","2","3","3","3","4","4","4");
shuffle($nums);
  1. 我正在尝试识别随机排列的数组中任意三个 3 个相同数字的序列/模式,并且
  2. 输出所有匹配数字集的总和。

我遇到的问题似乎源于尝试将循环中的当前数字与前一个数字进行比较(以查看它们是否匹配)。

当我回显“上一个”数字时,它始终输出为“0”。因此我无法比较当前数字和旧数字,这意味着我无法对相同数字的模式求和。

这是我的代码:

<?php
$t3count = 0;
$oldnum = 0;
$tots = 0;
$nums = array("1","1","1","1","1","2","2","2","2","3","3","3","4","4","4");
shuffle($nums);
foreach ($nums as $num) {
  echo "$num: [$oldnum] ";
    if ($num = $oldnum) {
      $t3count++;
        if ($t3count = 3) {
          $tots = $num * $num;
          $t3count = 0;
          $oldnum = $num;
        } else {
          # do nonum
        }
      } 
      else {
       $oldnum = $num; 
      }
      # echo "<li>$num</li>";    
   }

 echo "Your total is: $tots";
 unset($num);

?>

谢谢。

【问题讨论】:

    标签: php if-statement for-loop counter


    【解决方案1】:

    你需要在这里比较==而不是赋值=

    if ($num = $oldnum)
    

    这里:

    if ($t3count = 3)
    

    【讨论】:

    • uggggh!我不敢相信我错过了!叹。谢谢!
    • 我已经完成了一些其他错误的调试,并想分享我到目前为止的进展。这是迄今为止的脚本。我的下一步将是重构并在上面涂上一些口红(html/css)。再次感谢所有评论的人:
    【解决方案2】:

    如果我的逻辑正确,这可能会咬你

     $t3count++;
     if ($t3count == 3) {
    

    你怎么知道哪一个数为 3,id 先构建类似值的嵌套数组,然后处理它。

    【讨论】:

      【解决方案3】:

      你错过了 == 比较 if ($num = $oldnum) 和 if ($t3count = 3)

      替换为

      如果 ($num == $oldnum)

      如果 ($t3count == 3)

      【讨论】:

      • 非常感谢!谢谢!
      猜你喜欢
      • 2018-03-13
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多