我正在使用laravel框架,我有一个嵌套数组,可以在其中显示结果的子集.例如,在下面的数组中,我显示每年多个任务.

Array
(
  [0] => years_tasks_section_grid
    (
      [0] => 2022
      [1] => tasks_grid
        (
          [0] => Task1 2022
          [1] => Task2 2022
          [2] => Task3 2022
          [3] => Task4 2022
          [4] => Task5 2022
          [5] => Task6 2022
        )
    )

  [1] => years_tasks_section_grid
    (
      [0] => 2021
      [1] => tasks_grid
        (
          [0] => Task1 2021
          [1] => Task2 2021
          [2] => Task3 2021
        )
    )
)

The problem I want to display the last 3 tasks from the 2nd level of nested array.基本上,基于我的例子I try to get this (only tasks of 2022):

[0] => Task1 2022
[1] => Task2 2022
[2] => Task3 2022

但我得到了这个(基本上,我得到了2022年和2021年的三个最后任务,可能我还会有future 几年的其他任务):

[0] => Task1 2022
[1] => Task2 2022
[2] => Task3 2022

[0] => Task1 2021
[1] => Task2 2021
[2] => Task3 2021

这是我在Laravel Blade中的代码(我使用了ARRAY_SLICE,但不起作用,因为我得到了上面的结果):

@foreach($sections['years_tasks_section_grid'] as $year)
   @foreach(array_slice($year['tasks_grid'], 0, 5) as $task)
       <div class="col-md-4 col-xl-2 d-flex align-items-center justify-content-center justify-content-md-start mb-7 mb-xl-0 px-0">          
            // Other code
       </div>
   @endforeach
@endforeach

有什么主意吗?

推荐答案

您可以使用$counter,初始化为0,然后将其包含在div中.首先,让我们创建变量:

@php
$counter = 1
@endphp

现在,让我们将其包含在您的div中:

@foreach($sections['years_tasks_section_grid'] as $year)
   @foreach(array_slice($year['tasks_grid'], 0, 5) as $task)
       @if ($counter++ < 3)
       <div class="col-md-4 col-xl-2 d-flex align-items-center justify-content-center justify-content-md-start mb-7 mb-xl-0 px-0">          
            // Other code
       </div>
       @endif
   @endforeach
@endforeach

Php相关问答推荐

如何限制WordPress自定义分类术语页面中的术语数量

PHP原始数据读取引发max_input_vars错误

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

如何实现对数据库表中多列的唯一约束?

如何使用php一次更新两个数据库中的MySQL表

筛选器具有多个查询之一

Azure应用程序无法访问共享文件夹

PHP Match如何准确判断条件?

在WooCommercel邮箱通知上添加来自Apaczka插件的选定交付点

显示自定义 Laravel 9 公共属性的错误

如何在 PHP 中以 hh:mm:ss 格式获取两个 strtotime datetime/s 之间的时间差

使用用户元数据填写 woocommerce checkout 字段

安装 Herd 并返回 Valet 后为 502

Laravel Eloquent(where 子句)

注册命名空间后如何获取xml node 值?

symfony/notifier + twig/inky-extra 在 dunglas/symfony-docker 中缺少 ext-xsl.

php var_dump(1) 返回字符串(4)

如何故意创建不同的错误(404,500,419)? Lavravel PHP

如何通过本地主机在同一台 PC 上同时运行 Microsoft IIS 和 WAMP

fopen 功能不断向我发送我重新加载网页时已发布的重复版本的表单