【问题标题】:I want to get elements from array in order: three, four, three, four and so on我想按顺序从数组中获取元素:三、四、三、四等
【发布时间】:2020-05-01 06:50:05
【问题描述】:

我想像这样从数组中获取元素:获取前三个元素,然后获取四个元素,然后再获取三个元素,再获取四个元素,以此类推。

例如:

0 1 2 

3 4 5 6

7 8 9

10 11 12 13

and so on....

我尝试过这样的事情:

foreach($items as $key => $item) {
    if($key <= 2) {
      echo 'test';
    }

    if($key > 2 && $key < 6) {
      echo 'other test';                            
    }

    if($key > 6 && $key < 9) {
      echo 'test';                            
    }  
}

但是,我不想像这样使用if(),因为我不知道数组中有多少项:它来自数据库。

我想,我需要像 array_chunk($items, 3) 这样的东西,但对于尺寸参数,我需要循环中的 3 和 4

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您遇到特定编程问题,我们很乐意为您提供帮助,但我们不是来为您编写代码或设计您的系统。您至少需要尝试解决您自己的问题。请参阅How do I ask a good question?What topics can I ask about here?
  • 1.请至少向我们展示您正在处理的真实数组的样本
  • 2.还有一些你编写的代码试图自己做这个
  • foreach($items as $key =&gt; $item) { if($key &lt;= 2) { echo 'test'; } if($key &gt; 2 &amp;&amp; $key &lt; 6) { echo 'other test'; } if($key &gt; 6 &amp;&amp; $key &lt; 9) { echo 'test'; } } 抱歉这段代码很难阅读这样的代码。我试过这样的东西,但我不想写这样的 if 语句,因为我不知道有多少项目来自数据库

标签: php arrays laravel loops


【解决方案1】:

可能是这样,您可以创建另一个数组,指定每次迭代中所需的元素数量。

<?php

$number_of_elements = [3,4,3,4];

$your_array = ['a', 'b','c','d','e'];

foreach($number_of_elements as $number){

for($i = 0; $i<=$number; $i++){

    $result = $your_array[$i];
    print_r($result);
} 

print_r('<br>');

}

【讨论】:

  • 这是你的代码的结果:abcd - abcde - abcd - abcde我想成为这样的人:abc - defg - hij - klmn
  • 更改此数组。 $number_of_elements = [2,3,2,3];
【解决方案2】:

在 JavaScript 中,您可以使用 for 循环和数组的内置切片函数来解决您的问题。

const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
let offset = 0;

for(let i = 0; i < array.length;){
  offset = offset === 3 ? 4 : 3;
  const subArray = array.slice(i, i + offset);
  console.log(subArray);
  i += offset;
}

【讨论】:

  • 他使用了 php 标签。猜猜他正在使用php然后
  • 你是对的。不过,同样的逻辑在 php 中仍然有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 2021-12-27
相关资源
最近更新 更多