从多维集合中获取价值

时间:2017-10-06 12:10:27

标签: laravel collections laravel-5.4

假设我们有:

$collection;
Illuminate\Support\Collection {#312
  #items: array:20 [
    "id" => 1
    "externals" => {#314
      +"anothertypeofid": 2
      +"evenAnother": 3
      +"foobar": 4
      }
    ]
   }

有没有办法获得foobar而不检查它是否存在于集合中。如果没有,则返回null。

// you got.
$collection->get('id');   // Will return null if it does not exists.

//  But you cannot do 
$collection->get('externals.foobar');   

实现这一目标的最快方法是什么?

更新:

最后我想返回一个新数组

return [

  'anothertypeid' : value of collection>externals>anothertypeofid or null,
  'namedDifferently': value of collection>externals>foobar or null
]

所以我在想这样的事情。

return [
'anothertypeid' => $collect->pluck('anothertypeofid')->filter()->first(),// must return null if it does not exists in collection.
...
]

我也可以将集合转换为数组并使用帮助器 array_get()

return [
   'anothertypeid' => array_get($array,'externals.anothertypeofid',null); 
// will return null if not found
   ...
]

有更清洁和/或更有效的方法吗?

0 个答案:

没有答案