Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的循环只返回一个值_Php - Fatal编程技术网

Php 我的循环只返回一个值

Php 我的循环只返回一个值,php,Php,这里的问题是,当我使用$picnameoutput创建数组后打印时,它会像您在屏幕截图中看到的那样打印数组 稍后,在我运行for循环并回显它以查看输出后,它只给我1个值,我不明白它为什么选择该值,它甚至不是数组中的第一个值 非常沮丧 这是我的密码 <?php $largedir = 'images/headshots/large'; $large = scandir($largedir); $picnameoutput = preg_grep("/adam.*/", $lar

这里的问题是,当我使用
$picnameoutput
创建数组后打印时,它会像您在屏幕截图中看到的那样打印数组

稍后,在我运行for循环并回显它以查看输出后,它只给我1个值,我不明白它为什么选择该值,它甚至不是数组中的第一个值

非常沮丧

这是我的密码

<?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]";
  }
?>

这是一个截图,你可以看到我的意思


您有一个分号
for()之后
在括号之前。移除它

所以


这非常容易使用,甚至比for循环快

for之后有一个分号,因此代码的执行方式如下:

for ($i=0; $i<count($picnameoutput); $i++) {
   ; // Do nothing
}
{
  echo "$picnameoutput[$i]";
}

这是我第一次尝试,我花了很长时间才走到这一步。。。我非常感谢你的建议,谢谢。@GrooveChampion别担心,这是一个典型的,甚至是教科书上的错误。在第一次尝试中,您的代码看起来非常好。不要把我的一句台词看得太严重;)。是的,我花了一些时间去了解正则表达式,花了很多时间去思考,但我想强迫自己去做,因为我一直在用的书并没有真正让你做任何事情。。。对我来说,不做任何事情就很难接受这么多的理论……太棒了,现在我有另一个问题要问你,为什么这样做效果更好?当我只使用“for”时,它返回数组的前2个值,作为不存在的值,但使用for-each修复了这个错误@GrooveChampion:因为缺少一些索引(如1和2),所以将$icount()
,因为它将在每个循环中执行。您只需将
count()
的值添加到变量中,并在循环中检查该变量。
for ($i=0; $i<count($picnameoutput); $i++) {
    echo "$picnameoutput[$i]";
}
foreach ($picnameoutput as $pic) {
    echo $pic;
}
for ($i=0; $i<count($picnameoutput); $i++) {
   ; // Do nothing
}
{
  echo "$picnameoutput[$i]";
}
echo implode('', glob('images/headshots/large/adam*'));