Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/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,我习惯于列出文件。在这个场景中,我的dir包含19个文件 我需要创建一个列表,将7个文件包装成 我一定累了,因为我不能做这个简单的任务 我的代码已更新,以反映以下建议: $i = 0; echo '<div class="first_div">'; foreach ($dir as $fileinfo) { if ($fileinfo->isFile()) { if(($i % 7 == 0) && ($i > 0) ) echo

我习惯于列出文件。在这个场景中,我的dir包含19个文件

我需要创建一个列表,将7个文件包装成

我一定累了,因为我不能做这个简单的任务

我的代码已更新,以反映以下建议

$i = 0;
echo '<div class="first_div">';

foreach ($dir as $fileinfo) {
  if ($fileinfo->isFile()) {
    if(($i % 7 == 0) && ($i > 0) )
      echo '</div><div>';

    echo 'My file';
    $i++;
  }
}
echo '</div>';
$i=0;
回声';
foreach($dir作为$fileinfo){
如果($fileinfo->isFile()){
如果($i%7==0)和($i>0))
回声';
回声'我的文件';
$i++;
}
}
回声';

需要任何帮助。

类似的内容:

$c = 0;
foreach ($files as $file) {
  echo $file;
  if ($c % 7 == 0) {
    //7th file
  }
  $c++;
}
使用mod 7

$counter += 1;
if($counter % 7 = 0)
    //New div

不是100%确定这个i-Php的语法,但肯定有一些类似的东西:

echo '<div>';

$i = 0;
foreach ($dir as $fileinfo) {
   if($i % 7 == 0 && $i != 0) {
       echo '</div><div>';
   }
   // do stuff
   $i++;
}

echo '</div>';
echo';
$i=0;
foreach($dir作为$fileinfo){
如果($i%7==0&&$i!=0){
回声';
}
//做事
$i++;
}
回声';

尝试使用mod运算符(%)确定当前文件号是否为第7个:

echo "<div>";
$i = 0;
foreach ($dir as $fileinfo) {
   // Remainder is 0, so its the first of 7 files. 
   // Skip this for the first one, or we'll get a blank div to start with
   if($i % 7 == 0 && $i>0) echo "</div><div>";
   echo $filenamehere;
   $i++;
}
echo "</div>";
echo”“;
$i=0;
foreach($dir作为$fileinfo){
//余数是0,因此它是7个文件中的第一个。
//第一个跳过这个,否则我们将得到一个空白div
如果($i%7==0&&$i>0)回显“”;
echo$filenamehere;
$i++;
}
回声“;
(代码未经测试,但应能正常工作)

编辑:对$i使用独立计数器,因为索引似乎从2开始,而不是预期的0。

或类似

$chunk_size = 7;
foreach (array_chunk($dir, $chunk_size) as $chunk) {
   echo '<div>';
   foreach ($chunk as $fileinfo) {
      // echo list item $fileinfo here
   }
   echo '</div>';
}
$chunk\u size=7;
foreach(数组块($dir,$chunk\u size)作为$chunk){
回声';
foreach($fileinfo作为块){
//此处回显列表项$fileinfo
}
回声';
}
您可以使用函数将数组拆分为块

<?
$dir_chunks = array_chunk($dir, 7);

foreach($dir_chunks as $dir)
{
    echo '<div>';
    foreach ($dir as $fileinfo) {
      if ($fileinfo->isFile()) {
         // build list here
      }
    }
    echo '</div>';
}   
?>

或(抛出%运算符并输入更多)

使用以下代码:

if(($i-2) % 7 == 0)

虽然这是关于文件中的行,但同样的想法在这里也适用:我不能100%确定你在问什么,但是如果你正在寻找第七行,那么%操作符可能会帮助你。如果x%7=0:)@Tatu:这将在第一个文件之前输出“”。您需要在“if”语句中添加“&&i>0”以删除第一个空div(请参阅我的代码)。或者,可能不会,因为@Steven说$i从2开始,而不是像我预期的那样从0开始。@webbiedave:在下面对我的答案的评论中,使用这个选项实际上会产生一个问题。第一个
DIV
将只包含5项,因为
$i
从2开始。因此,我不得不采用柯林斯的解决方案。它不太有效。我使用的是
$fileinfo->isFile()
,所以当我开始添加文件时,$I总是从2开始。此外,每个文件的div都是addad。我更新了代码以修复您提到的问题,尝试再次尝试,并让我知道它是否有效。我更新的代码不再依赖于索引,而是使用一个普通的ol'计数器,每个文件递增1。这将使“索引从2开始”问题变得无关紧要。
if(($i-2) % 7 == 0)