Я пытался разобрать 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; }