Как я могу перебрать вывод JSON в PHP и выбрать только второй ключ => значение? - PullRequest
2 голосов
/ 09 января 2020

как я могу выполнить итерацию по этому выводу JSON, поместить в массив значения "hersteller" и распечатать их? Нужен ли мне только один блок -l oop или вложенный блок -l oop с $ i и $ j?

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

Спасибо:)

Ответы [ 3 ]

2 голосов
/ 09 января 2020
$arr = json_decode($str, true);  //converts JSON string into array
$arr_hersteller = array_column($arr, 'hersteller'); //returns an array containing "hersteller" values
0 голосов
/ 09 января 2020

С помощью "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);

Спасибо:)

0 голосов
/ 09 января 2020
<?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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...