【问题标题】:How to do multiple array_slice on a lengthy array?如何在冗长的数组上执行多个 array_slice?
【发布时间】:2012-05-16 08:05:28
【问题描述】:

我对 php 很陌生。我想在一个大数组上做多个数组切片。现在这是我的代码的一部分:

$row1 = array_slice($filtered, 0, 22);
$row2 = array_slice($filtered, 22, 22);
$row3 = array_slice($filtered, 44, 22);
$row5 = array_slice($filtered, 66, 22);
$row6 = array_slice($filtered, 88, 22);
$row7 = array_slice($filtered, 110, 22);
$row8 = array_slice($filtered, 132, 22);
$row9 = array_slice($filtered, 154, 22);
$row10 = array_slice($filtered, 176, 22);

每次数组切片的起始位置比上一行多22。不是写出所有这些行(总共 674 行),而是有一个语句,我可以使用它来自动推进起始位置 22 直到它到达结束,以及将它分配给一个每次增加 1 的变量,如示例.谢谢。

【问题讨论】:

  • 数组和for/while 循环将为您创造奇迹。

标签: php slice


【解决方案1】:
$previous = 0;
$current = 22;
$rows = array();

for ($current; $current < size($filtered); $current+22) {
    $rows[] = array_slice($filtered, $previous, $current);
    $previous = $current;
}

$filtered 数组计数不能被 22 整除时,您需要一个特殊情况。

【讨论】:

    【解决方案2】:

    您可以使用 php array_chunk 函数将原始数组拆分为任意大小的块

    $rows = array_chunk($filtered, 22);

    【讨论】:

      【解决方案3】:

      使用array_chunk,然后使用variable variables

      $j = 1;
      foreach( array_chunk($list, 22)  as $chunk){
          ${"row{$j}"} = $chunk;
          $j++;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        • 1970-01-01
        • 1970-01-01
        • 2019-08-24
        • 2015-06-21
        • 2023-02-08
        相关资源
        最近更新 更多