获得第一个,第二个,第三个集合元素

时间:2016-10-28 17:07:45

标签: laravel collections

我有一个这样的集合:

Collection {#750 ▼
  #items: array:18 [▼
    18 => User {#691 ▶}
    19 => User {#696 ▶}
    20 => User {#701 ▶}
  ]
}

18,19,20应该有所不同

我试着用

打电话
 $collection->get(0);
 $collection->get(1);
 $collection->get(2);

但显然,它不起作用

我找到了一个使用shift的变通方法,它返回第一个元素并将其从集合中删除,

 $el1 = $collection->shift();
 $el2 = $collection->shift();
 $el3 = $collection->shift();

但在这种情况下,我的原始收藏品已被销毁。

知道我应该怎么做吗?

4 个答案:

答案 0 :(得分:3)

您可以将values()用作:

$collection = $collection->values();

然后您可以将其用作:

 $collection->get(0);
 $collection->get(1);
 $collection->get(2);

答案 1 :(得分:1)

你可以循环使用它们:

foreach ($collection as $element) {
    // use $element
}

或者您可以重置要按顺序索引的键:

$collection = $collection->values();

$element1 = $collection->get(0);
$element2 = $collection->get(1);
$element3 = $collection->get(2);

答案 2 :(得分:0)

您可以使用slice()方法:

$collection->slice(0, 3)
  

slice方法返回从给定索引开始的集合切片。如果要限制返回切片的大小,请将所需大小作为第二个参数传递。

答案 3 :(得分:0)

您可以通过多种方式访问​​价值观。例如,您可以通过以下方式获取密钥:

$keys = $collection->keys()

然后按所需的有序密钥调用:

if (isset($keys[0])) $collection->get($keys[0]);