如何使用php foreach解析json数组?

I want to get id,url,img and title of videos in the JSON data.My current code doesn't output anything could any one tell me what i am doing wrong.Thanks

$code2 = stripslashes($_POST['outputtext']);
$data = json_decode($code2, true);
$i = 0;

foreach($data->videos as $values)
{
    echo $values->id . "
";
    echo $values->url . "
";
    echo $values->img . "
";
    echo $values->title . "
";
$i++;
}

data:

{
    "cat": {
        "id": "1234567",
        "source_id": null,
        "title_en": "first season",
        "description_en": "This is spring category ",
    },
    "videos": [{
        "id": "312412343",
        "url": "\/2015-07-17\/1abcd.mp4",
        "img": "image\/44\/\/2015-07-17\/1abcd.jpg",
        "title": "first",

    }, {
        "id": "2342343",
        "url": "\/2015-07-16\/2dcdeg.mp4",
        "img": "images\/44\/\/2015-07-16\/2dcdeg.jpg",
        "title": "second",


    }];


}

validated json data:

{
   "cat":{
      "id":"1234567",
      "source_id":null,
      "title_en":"first season",
      "description_en":"This is spring category "
   },
   "videos":[
      {
         "id":"312412343",
         "url":"\/2015-07-17\/1abcd.mp4",
         "img":"image\/44\/\/2015-07-17\/1abcd.jpg",
         "title":"first"
      },
      {
         "id":"2342343",
         "url":"\/2015-07-16\/2dcdeg.mp4",
         "img":"images\/44\/\/2015-07-16\/2dcdeg.jpg",
         "title":"second"
      }
   ]
}

Because you call

$data = json_decode($code2, true);

your $data is an array and not an object as you try to access it. So either access it as regular array, or change 2nd argument of json_decode() to false (or removeit as this is default), as this is what controls conversion behavior.

See docs: http://php.net/manual/en/function.json-decode.php

Your data is not a valid JSON (; at the end, redundant and missing comas - it's simply broken).

In case of such problems, var_dump() is pretty helpful to inspect what data you are really working with.