【问题标题】:Laravel take from collection with offsetLaravel 从带有偏移量的集合中获取
【发布时间】:2021-10-13 01:50:19
【问题描述】:

我有这个收藏

$collection = collect([0, 1, 2, 3, 4, 5]);

我知道我可以使用 take() 方法来获取集合的第 X 个元素

$collection = collect([0, 1, 2, 3, 4, 5]);
$chunk = $collection->take(3);

$chunk->all();

// [0, 1, 2]

但我想知道,是否有办法向 take() 方法添加偏移量或执行一些产生类似结果的操作

$collection = collect([0, 1, 2, 3, 4, 5]);
$chunk = $collection->take(3,2);

$chunk->all();

// [2, 3, 4]

有什么线索吗?

【问题讨论】:

  • 您为什么要花时间写一个冗长(而且很好!)的问题而不是查看文档?一切都在那里!

标签: php laravel


【解决方案1】:

使用跳过方法

$collection = collect([0, 1, 2, 3, 4, 5]);
$chunk = $collection->skip(2)->take(3);
$chunk->all();

【讨论】:

    【解决方案2】:

    splice 方法删除并返回从指定索引开始的项目切片:

    您可以传递第二个参数来限制结果集合的大小:

    $collection = collect([0,1, 2, 3, 4, 5]);
    
    $chunk = $collection->splice(2, 3);
    
    dd($chunk->all());
    

    如果您想保留集合中的所有值以供将来使用,也可以使用slice 方法

    更多:https://laravel.com/docs/8.x/collections#method-splice

    【讨论】:

      【解决方案3】:

      使用slice() 方法代替take()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-29
        • 1970-01-01
        • 2019-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-27
        相关资源
        最近更新 更多