【发布时间】:2018-02-19 01:23:30
【问题描述】:
如果集合是从数组创建的:
$collection = collect();
$collection->push([
'var1'=>'value1',
'var2'=>'value2'
]);
是否有可能以类似于 eloquent 集合属性的方式获得特定键的值?
$collection->var1
【问题讨论】:
如果集合是从数组创建的:
$collection = collect();
$collection->push([
'var1'=>'value1',
'var2'=>'value2'
]);
是否有可能以类似于 eloquent 集合属性的方式获得特定键的值?
$collection->var1
【问题讨论】:
我的变种:
$collection = collect();
$collection->push([
'var1'=>'value1',
'var2'=>'value2'
]);
$value = $collection->get('var1'); // value1
【讨论】:
不,但你绝对可以做类似的事情
$collection->first(function($value, $key) {
return $key == 'var1';
});
或者只是@AlexeyMezenin 的建议。
$collection[0]['var1'];
【讨论】:
虽然我自己仍在学习基础知识,但我个人的感觉,所以不要因为尝试而拒绝我!我知道它有一些额外的代码,但根据经验,当显式调用 $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 的经验还很远,但我自己仍在从研究中学习 :)
【讨论】:
要在集合中设置键值,您可以使用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()
【讨论】: