php - PHP file_get_contents 多维
问题描述
通过将其插入 index.php
<?php
$items = json_decode(file_get_contents('items.json'));
?>
我正在访问items.json并对其进行解码。
现在,如果我通过它循环
<?php foreach($items as $item): ?>
<div class="product_item second_row">
<div class="border" data-item-id="<?php echo $item[0]->id ?>">
<div class="product-image">
<img src="img/<?php echo $item[0]->imgName ?>" data-w-id="f149a3d7-f164-b15b-8428-ba536aa3754a" alt="" class="product_image" />
</div>
<div class="product_preis">
<div data-w-id="f149a3d7-f164-b15b-8428-ba536aa3754c" class="product_price_button-2">
<div class="like-btn"></div>
<div class="product_price_button_currency-2">CHF</div>
<div class="product_price_button_price-2">$<?php echo $item[0]->price ?></div>
<div class="purchaseicon"></div>
</div>
</div>
<div class="description_div">
<h1 class="product_description_h1"><?php echo $item[0]->name ?></h1>
<div class="description_text"><?php echo $item[0]->description ?></div>
</div>
每个 $item[0] 都应该选择第一个数组,在这种情况下是 Salat。我知道这是多维数组,您可以通过指定第一个数组来访问它,依此类推
缺少什么并阻止它正常工作?我得到了显示的项目,但不是全部。我的意思是我显示 id:1 但没有显示 id:2 和 id:3 等等。
下面是文件 items.json
{
"Salat": [
{
"id": 1,
"name": "Grüner Salat",
"price": 750,
"description": "Blattsalat",
"imgName": "green_salad-removebg-preview.png"
},
{
"id": 2,
"name": "Gemischter Salat",
"price": 850,
"description":"Blattsalat,Mais,Tomaten,Gurken,Oliven und Karotten",
"imgName": "gemischter_salat-removebg-preview.png"
},
{
"id": 3,
"name": "Caprese",
"price": 1000,
"description":"Büffelmozzarella mit Tomatenscheiben",
"imgName": "caprese-removebg-preview.png"
},
{
"id": 4,
"name": "Funghi e Speck",
"price": 1200,
"description": "Grüner Salat mit Pilzen und Speck",
"imgName": "rucola-salat-removebg-preview.png"
},
{
"id": 5,
"name": "Griechischer Salat",
"price": 1000,
"description":"Blattsalat,Mais,Tomaten,Gurken,Oliven,\nKarotten und Feta-Käse",
"imgName": "poulet-salat-removebg-preview.png"
}
],
"Sfizio": [
{
"id": 6,
"name": "Carpaccio di Polipo",
"price": 1500,
"description":"Tintenfischcarpaccio garniert mit Kapern und Zwiebeln",
"imgName": "thunfisch-salat-removebg-preview.png"
},
{
"id": 7,
"name": "Carpaccio di Salmone",
"price": 1500,
"description":"Lachs-Carpaccio garniert mit Kapern und Zwiebeln",
"imgName": "zwiebel-tomate-salat-removebg-preview.png"
},
{
"id": 8,
"name": "Polpette di Melanzane",
"price": 900,
"description":"Frittierte Auberginenbällchen",
"imgName": "caprese-removebg-preview.png"
},
{
"id": 9,
"name": "Melanzane gratinate",
"price": 800,
"description":"Gratinierte Auberginen",
"imgName": "caprese-removebg-preview.png"
},
{
"id": 10,
"name": "Arancini",
"price": 900,
"description":"Frittierte Reisbällchen gefüllt mir Ragùsauce,\nErbsen und Mozzarella",
"imgName": "arancini-removebg.png"
}
],
"Pasta": [
{
"id": 11,
"name": "Tortelloni al profumo di Tartufo",
"price": 2550,
"description":"Trüffel-Parfümierte Tortelloni mit Ricottafüllung",
"imgName": "arancini-removebg.png"
},
{
"id": 12,
"name": "Gnocchi Pesto e Mascarpone",
"price": 2350,
"description":"Gnocchi gefüllt mit grünem Pesto in\nMascarpone und Pesto Sauce",
"imgName": "arancini-removebg.png"
},
{
"id": 13,
"name": "Tagliolini ai Funghi Porcini",
"price": 2350,
"description":"Tagliolini in Steinpilz-Rahmsauce",
"imgName": "paste-tagliatelle-porcini.png"
},
{
"id": 14,
"name": "Lasagna al Forno",
"price": 1800,
"description":"Lasagne mit Käse überbacken",
"imgName": "paste-lasagna-clasica.png"
},
{
"id": 15,
"name": "Tagliatelle al Salmone",
"price": 2350,
"description":"Tagliatelle mit Lachs in Tomaten-Rahmsauce",
"imgName": "arancini-removebg.png"
},
{
"id": 16,
"name": "Melanzane alla Parmiggiana",
"price": 1800,
"description":"Feine Auberginenscheiben überbacken\nmit Ragùsauce und Büffelmozzarella",
"imgName": "arancini-removebg.png"
},
{
"id": 17,
"name": "Risotto ai Funghi Porcini",
"price": 1900,
"description":"Risotto mit Steinpilzen",
"imgName": "arancini-removebg.png"
},
{
"id": 18,
"name": "Gnocchi al Gorgonzola",
"price": 1900,
"description":"",
"imgName": "paste-gnocchi-spek-gorgonzola.png"
}
]
}
解决方案
由于您正在处理关联数组,因此您需要获取键/索引的值才能对其进行解析。
在这种情况下,您必须使用<?php foreach($items as $key => $item): ?>
foreach 循环的变体,在这里您还可以获得 index 的值,现在使用这个 $key 值来迭代数组$item[$key]
推荐阅读
- python - 如何从静态标签 wagtail 2.5 中的变量提供 webp
- python - Multiprocessing.Process 不并行运行进程
- bash - 如何仅匹配模式的前 N 个实例,然后在每个模式之后打印行直到空行?
- python - 有没有办法删除电子邮件地址中@之后的字符?
- python - PyCharm:如何在本地禁用缺少文档字符串检查
- c# - 用户或管理员的 ASP.Net Core WebAPI 授权策略
- excel - “第一个星期一”公式的Excel变体
- c++ - Visual Studio 2015 中的外部“C”显式类型错误,DLL 测试代码
- python - 如何让用户名成为计算机可以使用和读取的变量?
- visual-studio-code - VS Code API 获取右括号的位置