如何在 laravel 中使用 foreach 从 json 文件中获取所有数据?
Posted
技术标签:
【中文标题】如何在 laravel 中使用 foreach 从 json 文件中获取所有数据?【英文标题】:how get all the data from json file using foreach in laravel? 【发布时间】:2021-03-08 05:49:34 【问题描述】:我的 laravel 控制器
public function index()
$get=Storage::disk('public')>get('Philippines.json');
$json = json_decode($get, true);
return view('BarangayFolder.index')>with('json',$json);
我试图在我的选项标签上实现的输出是这样的;
"BANI"
"BUYON"
"CABARUAN"
"CABULALAAN"
"CABUSLIGAN"
"CALIOET-LIBONG"
"CASILIAN"
"COROCOR"
我不知道如何获取所有“barangay_list”数据,我尝试了许多解决方案和想法,但仍然没有得到它。
"01":
"region_name": "REGION 1",
"province_list":
"ILOCOS NORTE":
"municipality_list":
"ADAMS":
"barangay_list": [
"ADAMS (POB.)"
]
,
"BACARRA":
"barangay_list": [
"BANI",
"BUYON",
"CABARUAN",
"CABULALAAN",
"CABUSLIGAN",
"CADARATAN"
]
我设法获得了“region_name”的数据,即“REGION 1”,但我无法获得 barangay_list 的数据。
<datalist id="datalist-content">
foreach (array($json['01']) as $data)
<option value="$data['region_name']"></option>
endforeach
</datalist>
【问题讨论】:
错误是什么? 【参考方案1】:您需要了解您的 json 文件才能获得正确的数据。
您需要 barangay_list 的数据。如果我们为您的数据创建一棵树,它应该如下所示:
-01
--province_list
----->ILOCOS NORTE
----------->municipality_list
------------------>BACARRA
--------------------->barangay_list
你可以使用
foreach ($json['01']['province_list']['ILOCOS NORTE']['municipality_list']['BACARRA']['barangay_list'] as $data)
<option value="$data"></option>
endforeach
或者您可以先将列表保存在变量中并在循环中使用它
@php
$barangay_list = $json['01']['province_list']['ILOCOS NORTE']['municipality_list']['BACARRA']['barangay_list'];
@endphp
@foreach ($barangay_list as $data)
<option value="$data"></option>
@endforeach
你已经使用了 true 和 json_decode,它将数据转换为数组,所以你不需要添加数组函数来转换数组。
【讨论】:
【参考方案2】:您的循环不正确,请尝试以下代码
<datalist id="datalist-content">
foreach (array($json['01']['province_list']['ILOCOS NORTE']['municipality_list']['BACARRA']['barangay_list']) as $data)
<option value="$data">$data</option>
endforeach
</datalist>
【讨论】:
感谢桑迪先生的想法,在删除 foreach 中的数组后,它现在运行良好。以上是关于如何在 laravel 中使用 foreach 从 json 文件中获取所有数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在控制器传递变量(laravel)中使用刀片进行 foreach
如何在 Laravel 的 PHP/Blade 中使用 Foreach 循环?
如何在 laravel 中解码 Json 对象并在 laravel 中应用 foreach 循环
如何在 Laravel 8 中使用 foreach 从多选中保存数据?