作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[ "y" => 5, "a.b" => 10 ] ] 我可以像这样访问x.y: array_get($data, '-6ren">
我有一个像这样的数组:
$data = [
"x" => [
"y" => 5,
"a.b" => 10
]
]
我可以像这样访问x.y
:
array_get($data, 'x.y');
但是,如何访问x.(a.b)
(有时写为x.a->b
)
我尝试了以下方法:
array_get($data, 'x.a.b');
array_get($data, 'x.a->b');
但这似乎都不起作用。
最佳答案
你不能用array_get
来做到这一点。如果你看一下这个函数(vendor/laravel/framework/src/Illuminate/Support/helpers.php:155):
function array_get($array, $key, $default = null)
{
return Arr::get($array, $key, $default);
}
它调用 Arr
类的 get 函数 (vendor/laravel/framework/src/Illuminate/Support/Arr.php:278):
public static function get($array, $key, $default = null)
{
if (! static::accessible($array)) {
return value($default);
}
if (is_null($key)) {
return $array;
}
if (static::exists($array, $key)) {
return $array[$key];
}
if (strpos($key, '.') === false) {
return $array[$key] ?? value($default);
}
foreach (explode('.', $key) as $segment) {
if (static::accessible($array) && static::exists($array, $segment)) {
$array = $array[$segment];
} else {
return value($default);
}
}
return $array;
}
如果您查看处理 .
的 foreach 循环,它不支持您的数组所具有的结构。
关于拉拉维尔 5 : How to use array_get method to access an attribute with a dot inside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51154711/
我正在使用 git clone 部署我的 Laravel 项目并使用 git pull 进行更新 它工作正常,但每次部署时,我都必须从 config/app.php providers 数组和 ali
我是一名优秀的程序员,十分优秀!