【问题标题】:Filter multidimensional array in PHP在 PHP 中过滤多维数组
【发布时间】:2025-12-10 00:55:01
【问题描述】:

我正在尝试从下面的多维数组中获取两个值。我解码 JSON,然后尝试过滤它,但是,我没有得到任何值。你能帮我修复这个错误吗?

我尝试获取电子邮件值和产品名称。我的想法是通过内爆来获得它

$string=implode(', ', array_column($obj, 'email'));

这是我的数组

{
  "key": "sendMail",
  "cartItems": [
    {
      "bezeichnung": "test",
      "productname": "IGLO 5",
      "producttype": "Kunststoffsysteme",
      "windowtype": "Quadratisch",
      "typeopen": "rechts_kipp_open_mitte",
      "windowlong": "1000",
      "windowwide": "500",
      "dichtungen": "schwarz",
      "dekorfarbe": "",
      "outColorIn": "Grau",
      "outColorOut": "Grau",
      "selectedGriffe": "Standardgriff",
      "selectedOrnament": "Keine Angaben",
      "selectedVerglasung": "Keine Angaben",
      "selectedKante": "keine",
      "selectedSprossentyp": "Keine Angaben",
      "selectedSprossenmuster": "Keine Angaben",
      "selectedSprossenfarbe": "Keine Angaben",
      "selectedRahmenLinks": "Keine Angaben",
      "selectedRahmenRechts": "Keine Angaben",
      "selectedRahmenOben": "Keine Angaben",
      "selectedRahmenUnten": "Keine Angaben"
    }
  ],
  "personalData": {
    "name": "Hans Muster",
    "email": "hans.muster@email.ch",
    "tel": "0790012345",
    "agb": true
  }
}

【问题讨论】:

  • 顺便说一句,向我们展示您尝试过的代码

标签: php arrays json multidimensional-array


【解决方案1】:

您可以像使用 JSON 对象一样使用它,只需执行 $json_obj = json_decode($string); 然后

echo $json_obj->personalData->email;
echo PHP_EOL;
echo $json_obj->cartItems[0]->productname;

Demo

输出:

hans.muster@email.ch
IGLO 5

【讨论】:

    【解决方案2】:
    <?php
    $json = 
    '{
      "key": "sendMail",
      "cartItems": [
        {
          "bezeichnung": "test",
          "productname": "IGLO 5",
          "producttype": "Kunststoffsysteme",
          "windowtype": "Quadratisch",
          "typeopen": "rechts_kipp_open_mitte",
          "windowlong": "1000",
          "windowwide": "500",
          "dichtungen": "schwarz",
          "dekorfarbe": "",
          "outColorIn": "Grau",
          "outColorOut": "Grau",
          "selectedGriffe": "Standardgriff",
          "selectedOrnament": "Keine Angaben",
          "selectedVerglasung": "Keine Angaben",
          "selectedKante": "keine",
          "selectedSprossentyp": "Keine Angaben",
          "selectedSprossenmuster": "Keine Angaben",
          "selectedSprossenfarbe": "Keine Angaben",
          "selectedRahmenLinks": "Keine Angaben",
          "selectedRahmenRechts": "Keine Angaben",
          "selectedRahmenOben": "Keine Angaben",
          "selectedRahmenUnten": "Keine Angaben"
        }
      ],
      "personalData": {
        "name": "Hans Muster",
        "email": "hans.muster@email.ch",
        "tel": "0790012345",
        "agb": true
      }
    }';
    $json_array = json_decode($json,true);
    echo $json_array['cartItems'][0]['productname']."<br>";
    echo $json_array['personalData']['email'];
    ?>
    

    上面的代码会给你答案。

    【讨论】: