2 回答
TA贡献1818条经验 获得超7个赞
您可以使用以下代码递归迭代所有结构并仅提取您需要的数据(按键)。我假设 $data 具有您的原始数据结构,并且在 $result 中您将获得区域数组:
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($data), RecursiveIteratorIterator::SELF_FIRST);
$result = [];
foreach ($it as $k => $v) {
if ($k === 'area') {
$result = array_merge($result, $v);
}
}
TA贡献1798条经验 获得超7个赞
我不会使事情过于复杂,遍历您的数据结构。将所有区域添加到集合中。准备您的数据结构,我添加了一个检查以确保没有重复项unique()。
$data = 'your-data';
$areas = collect();
foreach($data->data as $country) {
foreach($country->regions as $region) {
foreach ($region->depots as $depot) {
$areas->concat($depot->area);
}
}
}
$result = ['area' => $areas->unique('id')->all()];
- 2 回答
- 0 关注
- 122 浏览
添加回答
举报