Laravel从集合中获取值

uplii1fm  于 2023-10-22  发布在  其他
关注(0)|答案(5)|浏览(143)

如果集合是从数组创建的:

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

是否有可能以类似于雄辩集合属性的方式获得特定键的值?

$collection->var1
c3frrgcw

c3frrgcw1#

我的变体:

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

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

a0zr77ik

a0zr77ik2#

收集对象的方法很少

$collection->pluck('name')->first(); // get first name attribute

$collection->firstWhere('name', 'Mark')?->name // search by name. get attribute or null
$collection->where('name', 'Mark')->first()?->name

如果集合的结构键=>值(如问题中),只需使用->get()

$collection->get('name')
unftdfkk

unftdfkk3#

不,但你绝对可以做一些像

$collection->first(function($value, $key) {
  return $key == 'var1';
});

或者只是@AlexeyMezenin建议的。

$collection[0]['var1'];
5jvtdoz2

5jvtdoz24#

要在集合中设置键值,可以使用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()
0yycz8jy

0yycz8jy5#

我个人的触摸,虽然我仍然在学习自己的基础,所以不要击落我的尝试!我知道这是一个小额外的代码,但从经验来看,你可以抓住了偏移异常错误时,调用$collection[0]显式(希望我是有意义的,因为这是一个个人的gotcha经验)
我的方法如下

$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还很不熟悉,我自己也在研究中学习:)

相关问题