我正在试图弄清楚为什么我正在写这个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数组中的一个键。如果有匹配的密钥,请在数字后面显示该值。
答案 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;
}