在n次迭代后打印换行

  • 本文关键字:打印 换行 迭代 php
  • 更新时间 :
  • 英文 :


目标是"换行";

有两个数组:

$split = [4, 2, 4];
$courses = ['HTML', 'JS', 'CSS', 'VueJS', 'ReactJs', 'PHP', 'Ruby', 'Python', 'Java', 'C#'];

您可以看到,我有第一个array称为split,第二个array称为courses,我想在每个分割后添加<br>

我想循环$courses,并在4项之后打印<br>。同样在2项之后,我打印另一个<br>

注意:我可以有更多的值在我的$split数组,这就是为什么我不想使用
foreach($courses as $key => $value){
   echo $value;
   if ($key == 4 OR $key == 2){
      echo '<br>';
   }
}

我的代码不能正常工作,因为我不能使用很多ORif statements,因为我可以在我的$split array有很多分割

是否有任何干净和最好的方法来循环$courses并在4循环之后打印<br>,在2之后,在4之后等等,这取决于我在$split中有多少分割

这将完成工作,记住数组从0开始,而不是1。所以它会在第3和第5项而不是第2和第4项上断裂。

关于in_array()的更多信息

<?php
$split = [4, 2, 4];
$courses = ['HTML', 'JS', 'CSS', 'VueJS', 'ReactJs', 'PHP', 'Ruby', 'Python', 'Java', 'C#'];
foreach($courses as $key => $value){
    echo $value;
    if (in_array($key, $split)) {
        echo '<br>';
    }
 }
 ?>

您需要跟踪下一个项目的顺序后找到它。

<?php
$split = [4, 2, 3];
$courses = ['HTML', 'JS', 'CSS', 'VueJS', 'ReactJs', 'PHP', 'Ruby', 'Python', 'Java', 'C#'];
$split_position = $reIndexValue = 0;
$elements = [];
foreach($courses as $index => $name) {
    $reIndexValue++;
    if(is_int($split_position) && $reIndexValue == $split[$split_position]) {
        
        $name = $name.'<br>';
        $split_position = isset($split[$split_position + 1])? ++ $split_position : false;
        $reIndexValue = 0;
        
    }
    
    $elements[] = $name;
}
echo implode (' ',$elements);

以下代码将在4次迭代后首先回显一个换行符,然后在2次迭代后回显一个换行符,然后在4次迭代后再回显另一个换行符。(对于$split数组中的任何指定序列,代码将继续执行)

<?php
$split = [4, 2, 4];
$courses = ['HTML', 'JS', 'CSS', 'VueJS', 'ReactJs', 'PHP', 'Ruby', 'Python', 'Java', 'C#', 'Pascal', "Fortran"];
$count = 0; //Counting the times we looped using a seperate variable
foreach($courses as $key => $value){
    echo $value." ";
    $count += 1; //Increase count
    if ($split[0]==$count) { //If the $count is similar to the first variable in $split array,
        echo '<br>';
        $count=0; //Reset $count back to 0
        array_shift($split); //Remove the already performed first variable from array
    }
    //without the following block, code will give you an "Undefined offset" notice 
    if (count($split)==0){
        array_push($split, -1);//Add a dummy variable (-1) that will never be tested. 
    }
 }
?>

我添加了另外两个变量"Pascal"one_answers";Fortran"到$courses数组中,以测试

的行为

最新更新