当前位置: 首页 > 知识库问答 >
问题:

PHP file_get_contents多维

微生雨泽
2023-03-14

将其插入index.php的顶部

<?php
    $items = json_decode(file_get_contents('items.json'));
 ?>

我正在访问items.json并对其进行解码。

现在,如果我用 循环遍历它

<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"
      }
    ]
  }

共有2个答案

万俟浩
2023-03-14

看起来你只需要使用2个循环

<?php foreach($items as $itemGroup): ?>
    <?php foreach($itemGroup as $item): ?>
        <?php echo $item->id ?>
        ...
    <?php endforeach; ?>
<?php endforeach; ?>
慎芷阳
2023-03-14

由于处理的是关联数组,因此需要获取key/index的值,以便解析它。

在这种情况下,您必须使用 $item):?>foreach循环的变体,在这里您还可以获得index的值,现在使用这个$key值作为$item[$key]数组进行迭代

 类似资料:
  • 问题内容: 我有一个包含 产品* 列表的表 订单 。对于与特定订单相对应的每个 产品 ,我需要存储一个 地址 列表,在该 地址 中应将单个产品(每个订单基于每个产品)发送到 * 所以我有这张表,在 订单 和 产品 上有很多很多,我需要的是将上表中的每个条目映射到 地址 列表。所以我需要像 并将上表中的条目映射到地址列表,我需要上述PK和地址ID(我的地址表的主键)上的多对多表 这里PK_Order

  • 问题内容: 我正在寻找以下列方式属于父类的对象的列表: SQLAlchemy examples文件夹具有简单的多对一关系,在我的示例中,类B和C是A的“父”类(而不是相反),但是我一生都无法解决如何将其逆转为一对多,然后添加双向关系以使其变为多对多。 谁能帮我这个忙吗? 问题答案: 这有点痛苦,并且显然需要更多的抛光,但是就像这样:

  • 还是就这之前标签的例子,但是为了不破坏之前的代码,这回新建一个scopeManyToMany.ts文件。代码如下。 scope 里面指定的值, 就是在连接表创建数据的时候,会自动把里面设定好的字段填充好,并且查询的时候会自动把这个条件当做 where 的一项,所以这样我们就能做出区分了。 import Sequelize from 'sequelize'; const sequelize = n

  • 多对多关联模型 满足条件:一个学生可以选择多个课程,一个课程也可以被多个学生选择 示例: student 学生表 class 课程表 student_has_class 中间表 >[danger] 多对多,需要借助第三个中间表,中间表包含了2个外键,分别是两个表的主键 我们假设有这样的一个场景,文章(Post)可以有多个标签(Tag),同样,一个Tag也可以对应多个Post,我们需要一张关联表Po

  • 问题内容: 假设我有一个数据库,其中包含人员,杂货店和您可以在商店中购买的商品,如下所示: 我还有一个表格可以跟踪哪些商店销售什么: 我还有一张桌子上有购物清单 我的问题是,给定一个人或他们的ID,找出他们可以去的商店的最佳方法是什么,以便他们将所有物品都列入清单。MySQL中是否有针对这些类型的计算的模式? 我的尝试(非常丑陋和凌乱)是这样的: 谢谢你的时间! 使用数据编辑SQL 问题答案: 如

  • 很多找我内推的同学咨询pdd面经,就找了被内推的同学总结了下自己一面的感受,供大家参考: PS: 希望大家多多点赞,多多找我内推,效果好我继续联系前端同学找面经,服务大家 面试同学总结: 1、Java中的HashMap、TreeMap解释下? 2、TreeMap查询写入的时间复杂度多少? 3、HashMap多线程有什么问题? CAS和synchronize有什么区别? 4、都用synchroniz

  • 比如我们有一张文章表,一张书籍表,一张标签表,一张标签关联表。文章和书籍共用标签库。 mysql> desc tb_article; +---------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra

  • 在如今的社会,我们非常喜欢给人打上标签,比如 颜值逆天、暖烘烘、高富帅等等。高富帅并不是某一个人的专利,一个人可以被别人打上多个标签,一个标签也可以打在多个人上面。这就是多对多关系。 声明多对多关系需要用到belongsToMany方法。 User.beblongsToMany(Tag, {through: 'user_tag'}); Tag.belongsToMany(User, {throug