【问题标题】:How can I iterate through JSON output in PHP and pick just the second key => value?如何遍历 PHP 中的 JSON 输出并仅选择第二个键 => 值?
【发布时间】:2020-04-26 23:30:36
【问题描述】:

如何遍历这个 JSON 输出并将“hersteller”值放入一个数组并打印出来?我只需要一个 for 循环块还是一个带有 $i 和 $j 的嵌套 for 循环?

[
    {
        "id": 2,
        "hersteller": "bmw",
        "modell": "{modell}",
        "baujahr": "2015",
        "artikelname": "nockenwelle",
        "ekpreis": 149,
        "verkpreis": 349,
        "mengeverfuegbar": 8
    },
    {
        "id": 3,
        "hersteller": "audi",
        "modell": "{modell}",
        "baujahr": "2018",
        "artikelname": "kotfluegel",
        "ekpreis": 89,
        "verkpreis": 249,
        "mengeverfuegbar": 4
    },
    {
        "id": 4,
        "hersteller": "mercedes",
        "modell": "{modell}",
        "baujahr": "2019",
        "artikelname": "getriebe",
        "ekpreis": 299,
        "verkpreis": 859,
        "mengeverfuegbar": 3
    }
]

谢谢你:)

【问题讨论】:

标签: php json for-loop


【解决方案1】:
$arr = json_decode($str, true);  //converts JSON string into array
$arr_hersteller = array_column($arr, 'hersteller'); //returns an array containing "hersteller" values

【讨论】:

    【解决方案2】:
    <?php
    $json = '[
    {
    "id": 2,
    "hersteller": "bmw",
    "modell": "{modell}",
    "baujahr": "2015",
    "artikelname": "nockenwelle",
    "ekpreis": 149,
    "verkpreis": 349,
    "mengeverfuegbar": 8
    },
    {
    "id": 3,
    "hersteller": "audi",
    "modell": "{modell}",
    "baujahr": "2018",
    "artikelname": "kotfluegel",
    "ekpreis": 89,
    "verkpreis": 249,
    "mengeverfuegbar": 4
    },
    {
    "id": 4,
    "hersteller": "mercedes",
    "modell": "{modell}",
    "baujahr": "2019",
    "artikelname": "getriebe",
    "ekpreis": 299,
    "verkpreis": 859,
    "mengeverfuegbar": 3
    }
    ]';
    //convert json to array json_decode(array, true) 
    //this true mean convert it to array instead of object
    $array = json_decode($json, true);
    
    //create new empty array
    $hersteller = array();
    
    //iterate
    foreach($array as $key => $val){
      if(isset($val['hersteller'])){
        $hersteller[] = $val['hersteller'];  
      }
    }
    
    echo "<pre>";
    //print the array
    print_r($hersteller);
    

    【讨论】:

      【解决方案3】:

      在“codeit”的帮助下,我解决了我的问题:

      $output = array();
      
      $urlContents = file_get_contents(#Here is a URL to get the JSON value#);
      
      $bestandspflegeArray = json_decode($urlContents, true);
      $hersteller = array_column($bestandspflegeArray, 'hersteller');
      
      for ($i=0; $i < count($hersteller); $i++) { 
                  $output[] = $hersteller[$i];  
              }
      
      echo json_encode($output);
      

      谢谢你:)

      【讨论】:

        猜你喜欢
        • 2013-09-17
        • 2020-09-10
        • 2015-09-27
        • 2020-03-21
        • 1970-01-01
        • 1970-01-01
        • 2021-06-03
        • 2012-01-16
        • 1970-01-01
        相关资源
        最近更新 更多