如果集合是从数组创建的:
$collection = collect(); $collection->push([ 'var1'=>'value1', 'var2'=>'value2' ]);
是否有可能以类似于雄辩集合属性的方式获得特定键的值?
$collection->var1
c3frrgcw1#
我的变体:
$collection = collect(); $collection->push([ 'var1'=>'value1', 'var2'=>'value2' ]); $value = $collection->get('var1'); // value1
https://laravel.com/docs/5.6/collections#method-get
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')
unftdfkk3#
不,但你绝对可以做一些像
$collection->first(function($value, $key) { return $key == 'var1'; });
或者只是@AlexeyMezenin建议的。
$collection[0]['var1'];
5jvtdoz24#
要在集合中设置键值,可以使用put()方法。
put()
$collection = collect(); $collection->put("var1", "value1"); $collection->put("var2", "value2"); $collection->put("var3", "value3");
要只将一个没有键的值推送到集合中,请使用push()方法,就像您在OP中所做的那样。
push()
$collection->push("value4");
要检索这些值,请使用get()方法;
get()
$collection->get("var2");
想看看收藏的内容吗?在集合示例上使用dd()方法。以下两项工作。
dd()
dd($collection)
或
$collection->dd()
0yycz8jy5#
我个人的触摸,虽然我仍然在学习自己的基础,所以不要击落我的尝试!我知道这是一个小额外的代码,但从经验来看,你可以抓住了偏移异常错误时,调用$collection[0]显式(希望我是有意义的,因为这是一个个人的gotcha经验)我的方法如下
$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还很不熟悉,我自己也在研究中学习:)
5条答案
按热度按时间c3frrgcw1#
我的变体:
https://laravel.com/docs/5.6/collections#method-get
a0zr77ik2#
收集对象的方法很少
如果集合的结构键=>值(如问题中),只需使用->get()
unftdfkk3#
不,但你绝对可以做一些像
或者只是@AlexeyMezenin建议的。
5jvtdoz24#
要在集合中设置键值,可以使用
put()
方法。要只将一个没有键的值推送到集合中,请使用
push()
方法,就像您在OP中所做的那样。要检索这些值,请使用
get()
方法;想看看收藏的内容吗?在集合示例上使用
dd()
方法。以下两项工作。或
0yycz8jy5#
我个人的触摸,虽然我仍然在学习自己的基础,所以不要击落我的尝试!我知道这是一个小额外的代码,但从经验来看,你可以抓住了偏移异常错误时,调用
$collection[0]
显式(希望我是有意义的,因为这是一个个人的gotcha经验)我的方法如下
希望这对你有帮助,就像我说的,虽然我对php/laravel还很不熟悉,我自己也在研究中学习:)