You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.4中如何跳过Pluck数组的第一个元素?

解决方案:跳过集合/数组的第一个元素

嘿,这个需求其实很容易实现,我给你几个实用的方法,都能精准得到你想要的结果:

方法一:使用集合的 skip() 方法

Laravel 集合自带的 skip() 方法可以直接跳过指定数量的元素,我们只需要在链式调用里加上它就行:

$orderStates = OrderState::listsTranslations('states')
    ->pluck('states', 'id')
    ->skip(1) // 跳过第一个元素
    ->toArray();

这样处理后,集合会直接排除第一个元素,转成数组后就是你要的 [2 => "agreed", 3 => "canceled"]。

方法二:使用集合的 slice() 方法

slice() 和 skip() 效果类似,它可以从指定位置开始截取集合的剩余部分,代码如下:

$orderStates = OrderState::listsTranslations('states')
    ->pluck('states', 'id')
    ->slice(1) // 从第2个元素开始截取(索引从0开始)
    ->toArray();

如果后续需要截取固定长度的元素,还可以给 slice() 传第二个参数,比如 slice(1, 1) 就只取第二个元素,但这里我们不传的话就会取到最后。

方法三:转数组后用 array_slice() 处理

如果已经得到了原始数组,也可以用 PHP 原生函数 array_slice() 来处理,但要注意加上最后一个参数 true 来保留原键名:

// 先拿到原始数组
$originalStates = OrderState::listsTranslations('states')
    ->pluck('states', 'id')
    ->toArray();

// 跳过第一个元素并保留原键名
$orderStates = array_slice($originalStates, 1, null, true);

要是不加 true,数组的键会被重置成 0、1,就不符合你的需求啦。

个人更推荐前两种集合方法,因为在集合层面处理更高效,不用先转成数组再操作~

内容的提问来源于stack exchange,提问作者Yousef Altaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:45:32