【问题标题】:For Loop Display FactFor 循环显示事实
【发布时间】:2016-08-29 14:27:09
【问题描述】:

我试图弄清楚为什么我正在编写的这个 for 循环的未定义偏移量为 1。我有一个具有特定键值对的数组 ($facts),我试图查看在每次迭代中 $i 是否与数组中的一个键匹配。如果键 isset 并且在数组中,我需要显示该键的值。

for ($i = 1; $i <= 100; $i++) {
  if (isset($i) && in_array($i, $facts[$i])) {
    echo $facts[$i];
  }
  echo $i;
}

更新:使用函数 isset 测试增加的值是否等于 $facts 数组中的键之一。如果有匹配的键,则在数字后显示值。

【问题讨论】:

  • 也许isset($facts[$i]) 而不是简单的isset($i)...$i 肯定是设置的,因为这是在for 循环中定义和递增的值
  • ...和in_array($i, $facts[$i]) 将检查该整数是否作为$facts[$i] 中的值存在(这可能会失败,因为$facts[$i] 可能不是数组,无论如何)。

标签: php


【解决方案1】:

我认为这是正确的检查方式(删除in_array())。

for ($i = 1; $i <= 100; $i++) {
    echo $i; // Now the number is first.
    if (isset($facts[$i])) {
        // This is only echoed if $i exists as a key.
        echo $facts[$i];
    }
}

如果您只想在事实存在时显示数字,请将 echo $i 移到 if 语句中(或者更好的是,在这种情况下使用 foreach($facts as $key =&gt; $value))。

【讨论】:

    【解决方案2】:

    您可以查看$facts[$i]

    for ($i = 1; $i <= 100; $i++) {
      if (isset($facts[$i]) && in_array($i, $facts[$i])) {
        echo $facts[$i];
      }
      echo $i;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2020-06-09
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      相关资源
      最近更新 更多