在Laravel中如何通过层级路径字符串获取多维数组指定键的值
实现方案
Laravel 内置的数组/数据读取辅助函数已经支持按层级路径取值,你只需要先把路径字符串的分隔符做简单转换即可:
- 首先将你拿到的
note > to > abc格式路径里的>替换为Laravel辅助函数支持的点号分隔符 - 调用
data_get()(通用,支持数组和对象)或者Arr::get()(仅针对数组)方法直接取值即可
完整示例代码
// 示例数组 $yourArray = [ 'note' => [ 'to' => [ 'user' => [ 'name' => 'First User' ], 'abc' => 123, 'lmn' => 4582 ], 'from' => 'Jani', 'heading' => 'Reminder', 'body' => [ 'abc' => 123 ] ] ]; // 层级路径字符串 $levelPath = 'note > to > abc'; // 转换路径格式 $dotPath = str_replace(' > ', '.', $levelPath); // 取值,第三个参数为路径不存在时返回的默认值,可选 $result = data_get($yourArray, $dotPath, null); // 此时$result的值为 123
如果要使用Arr::get,需要先引入门面:
use Illuminate\Support\Arr; $result = Arr::get($yourArray, $dotPath);
内容的提问来源于stack exchange,提问作者Dev Frnds
相关产品推荐
相关产品推荐

