Sunday, May 21, 2017

How to decode a multidimensional json array in lararvel with 'foreach' for specific values?

I tried to figure out in php how to receive specific values from a json file with the 'foreach' but so far I didn't got what I wanted to. I marked each of the lines with '//!' that indicates what I want to echoing out with the 'foreach'.

My main goal with this to use it in Laravel, after I got the logic with pure php. So maybe you know a better solution before the process.

{
  "msg": "Meeting information",
  "meeting": {
    "id": 1,
    "created_at": "2017-05-11 18:59:13",
    "updated_at": "2017-05-11 19:03:39",
    "time": "2016-01-30 13:30:00",
    "title": "Test Meeting 2",
    "description": "Test",
    "view_meetings": {
      "href": "api/v1/meeting",
      "method": "GET"
    },
    "users": [
      {
        "id": 20,
        "name": "Subject_02",
        "email": "subject_02@test.com",
        "created_at": "2017-05-19 17:40:25",
        "updated_at": "2017-05-19 17:40:25",
        "pivot": {
          "meeting_id": 1,
          "user_id": 20
        }
      },
      {
        "id": 21,
        "name": "Subject_03",
        "email": "subject_03@test.com",
        "created_at": "2017-05-19 20:11:18",
        "updated_at": "2017-05-19 20:11:18",
        "pivot": {
          "meeting_id": 1,
          "user_id": 21
        }
      }
    ]
  }
}
<?php 
$data = file_get_contents("/Applications/MAMP/htdocs/meeting.json");
$json = json_decode($data  = file_get_contents("/Applications/MAMP/htdocs/meeting.json"), true);
// $push = var_dump($json);

// echo print_r($json, true) . "<br>" . "<br>";

echo "Static paths:" . "<br>" . "<br>";

echo ' => ' . $json . "<br>";

echo '[msg] => ' . $json[msg] . "<br>" . "<br>";//!

echo '[meeting] => ' . $json[meeting] . "<br>";
echo ' - [id] => ' . $json[meeting][id] . "<br>";//!
echo ' - [created_at] => ' . $json[meeting][created_at] . "<br>";//!
echo ' - [updated_at] => ' . $json[meeting][updated_at] . "<br>";//!
echo ' - [time] => ' . $json[meeting][time] . "<br>";//!
echo ' - [title] => ' . $json[meeting][title] . "<br>";//!
echo ' - [description] => ' . $json[meeting][description] . "<br>" . "<br>";//!

echo ' - [view_meetings] => ' . $json[meeting][view_meetings] . "<br>";
echo ' - - [view_meetings] => ' . $json[meeting][view_meetings][href] . "<br>";
echo ' - - [view_meetings] => ' . $json[meeting][view_meetings][method] . "<br>" . "<br>";

echo ' - [users] => ' . $json[meeting][users] . "<br>" . "<br>";

echo ' - [0] => ' . $json[meeting][users][0] . "<br>";
echo ' - - [id] => ' . $json[meeting][users][0][id] . "<br>";//!
echo ' - - [email] => ' . $json[meeting][users][0][email] . "<br>";//!
echo ' - - [created_at] => ' . $json[meeting][users][0][created_at] . "<br>";//!
echo ' - - [updated_at] => ' . $json[meeting][users][0][updated_at] . "<br>" . "<br>";//!

echo ' - - [pivot] => ' . $json[meeting][users][0][pivot] . "<br>";
echo ' - - - [meeting_id] => ' . $json[meeting][users][0][pivot][meeting_id] . "<br>";
echo ' - - - [user_id] => ' . $json[meeting][users][0][pivot][user_id] . "<br>" . "<br>";

echo ' - [1] => ' . $json[meeting][users][1] . "<br>";
echo ' - - [id] => ' . $json[meeting][users][1][id] . "<br>";//!
echo ' - - [email] => ' . $json[meeting][users][1][email] . "<br>";//!
echo ' - - [created_at] => ' . $json[meeting][users][1][created_at] . "<br>";//!
echo ' - - [updated_at] => ' . $json[meeting][users][1][updated_at] . "<br>" . "<br>";//!

echo ' - - [pivot] => ' . $json[meeting][users][1][pivot] . "<br>";
echo ' - - - [meeting_id] => ' . $json[meeting][users][1][pivot][meeting_id] . "<br>";
echo ' - - - [user_id] => ' . $json[meeting][users][1][pivot][user_id] . "<br>" . "<br>" . "<br>";

echo "Dynamic paths:" . "<br>" . "<br>";


foreach ($json as $key) {

        echo $key[users][0][id] . "<br>";
        echo $key[users][0][email] . "<br>";
}


via r4nd3l8888

Advertisement