使用data_get()
辅助函数,我们可以使用点.
表示法获得嵌套数组的值,如下所示:
$my_arr = [
'a' => ['lower' => 'aa', 'upper' => 'AAA',],
'b' => ['lower' => 'bbb', 'upper' => 'BBBBB',],
];
因此,我可以通过这样做得到更低的a
。
data_get($my_arr, 'a.lower');
而且你也做了以下事情。
Arr::get('a.lower');
如果我只想获得数组的第一级。我可以做到两件事:
data_get($my_arr, 'a');
要么
Arr::get($my_arr, 'a');
你推荐我哪一个?为什么?我只是想继续提高我的Laravel经验,并从高级开发人员那里获得好的建议,以便选择目前最好的选择。
这取决于上下文来决定使用哪一个。
如果你需要在索引中使用通配符,你必须使用data_get
,因为Arr::get
不支持通配符。
例:
Arr::get($my_arr, '*.lower'); // null
data_get($my_arr, '*.lower'); // ["aa", "bbb"]
Arr::get
只是假设你的变量是一个数组。因此,如果你使用一个对象,你必须使用data_get
。但是,如果您确定您的变量是一个数组并且您不需要通配符,则应继续使用Arr::get
以避免从data_get
进行不必要的检查,以便查看您的变量是对象还是数组。