Aryadika Setyaji
Aryadika Setyaji

Reputation: 11

json parsing with php foreach

I was trying to parsing json file below from a link but I still can't figure it out about parsing and display it with foreach.

data: [
{
id: "1072",
nik: "013977",
status: "",
name: "RAKHMAT KUSNADI",
birthdate: "1983-10-21",
email: "[email protected]",
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"
},
]
}

I want to display name and profile_pics where department id is 101.

Does anybody know how to parse it with foreach?

Upvotes: 1

Views: 35597

Answers (6)

Suresh
Suresh

Reputation: 1

usr this

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

Upvotes: 0

Connor
Connor

Reputation: 645

$data = json_decode($json, true)

Then whatever info you want out you get out with the foreach loop

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

With that you can set any variable like $data->nik as $nik or whatever you want then echo them back

Upvotes: 0

Niek van der Steen
Niek van der Steen

Reputation: 1433

Probably something like:

$data = json_decode($your_json);

foreach($data as $object) {
    echo 'This is the name: ' . $object->name . PHP_EOL ;
}

Upvotes: 0

chandresh_cool
chandresh_cool

Reputation: 11830

Use json_decode

  $arr = json_decode($jsonstring, true);

then use foreach loop

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

Upvotes: 2

Elias Van Ootegem
Elias Van Ootegem

Reputation: 76405

Reinventing the wheel, are we? Why not simply use:

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

Read more on json_decode here... It's quite easy to use, really

If you decode the data to an array, you could loop through the data like so

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

Or simply use any old for/foreach loop on an object, its a traversable object anyway (though it doesn't implement the Traversable interface)

Upvotes: 5

duellsy
duellsy

Reputation: 8577

First step is to convert to an array

$data = json_decode($json);

Once you've got the array, you can then loop through it and check the values

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

Upvotes: 2

Related Questions