这里的问题是,当我使用$picnameoutput
创建数组后执行print_r时,它将打印数组,如屏幕截图所示。
稍后我运行for循环并回显它只是为了看到输出它只给我一个值,我无法弄清楚它为什么选择该值,它甚至不是数组中的第一个。
非常沮丧。
这是我的代码
<?php
$largedir = 'images/headshots/large';
$large = scandir($largedir);
$picnameoutput = preg_grep("/adam.*/", $large);
print_r($picnameoutput);
for ($i=0; $i<count($picnameoutput); $i++); {
echo "$picnameoutput[$i]";
}
?>
这是一个截图,你可以看到我的意思
答案 0 :(得分:29)
在括号前;
后面有分号for()
。删除它。
所以
for ($i=0; $i<count($picnameoutput); $i++); {
echo "$picnameoutput[$i]";
}
变为
for ($i=0; $i<count($picnameoutput); $i++) {
echo "$picnameoutput[$i]";
}
但我建议使用foreach()
代替
foreach ($picnameoutput as $pic) {
echo $pic;
}
这非常容易使用,甚至比你的for循环更快
答案 1 :(得分:12)
for
后面有一个分号,所以你的代码执行如下:
for ($i=0; $i<count($picnameoutput); $i++) {
; // Do nothing
}
{
echo "$picnameoutput[$i]";
}
此外,它可以缩写为
echo implode('', glob('images/headshots/large/adam*'));