对于循环显示事实

时间:2016-08-29 14:27:09

标签: php

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

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

UPDATE:使用函数isset来测试递增的值是否等于$ facts数组中的一个键。如果有匹配的密钥,请在数字后面显示该值。

2 个答案:

答案 0 :(得分: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];
    }
}

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

答案 1 :(得分:0)

您可以查看$facts[$i]

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