Laravel从集合中获取值

时间:2016-12-17 20:47:10

标签: php laravel laravel-5

如果从数组创建集合:

$collection = collect();
$collection->push([
        'var1'=>'value1',
        'var2'=>'value2'
       ]);

是否有可能获得特定密钥的价值,类似于雄辩的集合属性?

$collection->var1

4 个答案:

答案 0 :(得分:1)

我的变体:

$collection = collect();
$collection->push([
    'var1'=>'value1',
    'var2'=>'value2'
]);
$value = $collection->get('var1'); // value1

https://laravel.com/docs/5.6/collections#method-get

答案 1 :(得分:-1)

不,但你绝对可以做像

这样的事情
$collection->first(function($value, $key) {
  return $key == 'var1';
});

或者只是@AlexeyMezenin的建议。

$collection[0]['var1'];

答案 2 :(得分:-1)

我个人的感觉,虽然我自己仍在学习基础知识,所以不要让我失望。我知道它有一些额外的代码但是根据经验你明确地调用$collection[0]时会遇到偏移异常错误(希望我有意义,因为这是一个个人的问题经验)

我的方法如下

$collection = collect();
$collection->push([
    'var1'=>'value1',
    'var2'=>'value2'
]);

for ($x = 0; $x < count($collection); $x++) {
    if (isset($collection[$x])) {
        $var = $collection[$x];
    }
}

// Now call what ever variable from the collection you wish:

echo $var['var1'];
echo $var['var2'];

希望有所帮助,就像我说的那样,虽然我远没有使用php / laravel,我仍然从研究中学习:)

答案 3 :(得分:-1)

要在集合中设置键值,您可以使用put()方法。

$collection = collect();

$collection->put("var1", "value1");
$collection->put("var2", "value2");
$collection->put("var3", "value3");

要仅将没有键的值推送到集合中,请使用push()方法,就像在OP中一样。

$collection->push("value4");

要检索这些值,请使用get()方法;

$collection->get("var2");

想要查看该系列的内容?在集合实例上使用dd()方法。以下两项工作。

dd($collection)

$collection->dd()