php - 如何将 eloquent 对象转换为零深度数组?
问题描述
我有一个雄辩的对象,其中包含来自模型的数据,我需要将其转换为数组,并具有来自相同数组深度的关系的所有索引。
我尝试array_flatten(), map(), filter()
了其他 PHP 方法,但无法正常工作。
我如何得到我的关系:
$data = Person::whereIn('id', $this->id[0])->where('school_id', '=',
$this->school)->with(['personinfo'=>function ($query) {
$query->select(
'person_id',
'general_info',
);
}, 'trades'=>function ($query) {
$query->select('person_id', 'trade_id')->with('trades');
}, 'measurements'=>function ($query) {
$query->select(
'person_id',
'measuring_point_1',
'measuring_point_1_date',
);
}])->get();
return $data->toArray();
下面的数组的结果,这是我使用不同方法所能得到的最接近的结果。
这是返回函数的结果:
array:3 [
1 => array:17 [
"school_id" => 6
"birth_date" => null
"sex_id" => 1
"phone_number" => 62452676867897
"mobile_number" => 62398356786787
"email" => "example@example.com"
"personinfo" => array:5 [
"person_id" => 21
"general_info" => null
"health_info" => null
]
"trades" => array:3 [
"person_id" => 21
"trade_id" => 2
"trades" => array:8 [
"school_id" => 2
"name" => "blablabla"
]
]
"measurements" => array:7 [
"person_id" => 21
"measuring_point_1" => null
"measuring_point_1_date" => null
]
]
];
我需要数组是这样的:
array:3 [
1 => array:17 [
"school_id" => 6
"birth_date" => null
"sex_id" => 1
"phone_number" => 624176676867897
"mobile_number" => 649498356786787
"email" => "example@example.com"
"person_id" => 21
"general_info" => null
"health_info" => null
"person_id" => 21
"trade_id" => 2
"school_id" => 2
"name" => "blablabla"
"person_id" => 21
"measuring_point_1" => null
"measuring_point_1_date" => null
]
]
];
基本上,我需要将多维数组转换为零深度数组。
任何帮助,将不胜感激。
解决方案
推荐阅读
- css - 使用 Bootstrap 格式化列
- http - 对转发标题感到困惑
- python - 如何收集第一个坐标并合并列表列表的所有坐标?
- javascript - 获取数组中对象中键值对的值
- html - 绝对定位于复杂结构
- python - 在熊猫中强制索引重置
- elasticsearch - 缺少索引:缺少几周前的一些索引,是否可以将它们放入 ElasticSearch 而不重复?
- webpack - Nextjs 构建错误,详细日志没有显示
- javascript - 无法重定向到 django paypal 中的成功页面
- linux - 考虑到 Linux 不支持 _OSI("Linux") ACPI 对象,任何依赖方式在 BIOS 中使用它