json синтаксический анализ php foreach

Я пытался разобрать json-файл ниже по ссылке, но я до сих пор не могу разобраться в разборе и отображать его с помощью foreach.

data: [ { id: "1072", nik: "013977", status: "", name: "RAKHMAT KUSNADI", birthdate: "1983-10-21", email: "rakhmat.koes@gmail.com", first_login: "0", is_juri: "0", what_juri: "", categorized: "0", back_stage: "0", placement: [ { rel_id: "1102", employee_id: "1072", department_id: "101", dept: "Chip", position_id: "1", position: "" } ], profile_pics: "link" }, { id: "1069", nik: "013377", status: "", name: "RENATA MARINGKA", birthdate: "1987-05-20", email: "", first_login: "1", is_juri: "0", what_juri: "", categorized: "0", back_stage: "0", placement: [ { rel_id: "1099", employee_id: "1069", department_id: "101", dept: "Chip", position_id: "1", position: "" } ], profile_pics: "link" }, ] } 

Я хочу показать имя и profile_pics, где идентификатор отдела – 101.

Кто-нибудь знает, как его разобрать с помощью foreach?

Переосмыслить колесо, не так ли? Почему бы просто не использовать:

 $jsonObj = json_decode($jsonString);//returns stdClass instance, just an object $jsonArr = json_decode($jsonString, true);//converts object to associative array 

Подробнее о json_decode здесь … Это довольно просто использовать, на самом деле

Если вы декодируете данные в массив, вы можете прокручивать данные таким образом

 while($item = array_shift($jsonArr)) { foreach ($item as $key => $value) { echo $key.' => '.$value."\n"; } } 

Или просто используйте любой старый / foreach цикл для объекта, его обходной объект в любом случае (хотя он не реализует интерфейс Traversable )

Первый шаг – преобразование в массив

 $data = json_decode($json); 

После того, как вы получите массив, вы можете пропустить его и проверить значения

 $keepers = array(); foreach ($data as $item) { if ($item->placement->department_id == 101) { $keepers[] = $item; } } 

Использовать json_decode

  $arr = json_decode($jsonstring, true); 

затем используйте цикл foreach

 foreach($arr as $val) { if($val['placement']['department_id'] == "101") { //display what u want } } 

Возможно, что-то вроде:

 $data = json_decode($your_json); foreach($data as $object) { echo 'This is the name: ' . $object->name . PHP_EOL ; } 
 $data = json_decode($json, true) 

Тогда какая бы информация вы ни пожелали, вы выходите с петлей foreach

 foreach ($data->id as $id) { echo $id; } 

С этим вы можете установить любую переменную как $data->nik as $nik или что угодно, а затем отбросить их назад

usr this

 foreach ($data->id as $id) { echo $id; }