如何使用PHP将json对象放入数组?

时间:2015-02-05 06:55:59

标签: php arrays json

这是我的php代码,用于获取json格式数据

if($status==1)
    {
        $post_id=$json_object['post_id'];

        $get_postid=mysqli_query($con,"select * from User_Post where post_id='$post_id'");
        if(mysqli_num_rows($get_postid)==0)
        {

            //For failure status if session id is wrong.
             http_response_code(500);
             echo json_encode(array("error_code"=>"500","error_message"=>"Sorry, post id does not exists."));
        }
        else
        {
        foreach($field_check as $values)
        {
            if($values=='id')
            {
                $row_array = array();
                while ($row = $get_postid->fetch_array())
                {
                    $row_array['id']=$row['post_id'];
                    $row_array['image_urls']=explode(',',$row['post_image_url']);
                    $storetag= explode(',',$row['Post_tagged_id']);   
                    $has_liked="false";
                    $has_commented="false";

                }

            }
            elseif($values=='tagged_users')
            {

                while ($row = $get_postid->fetch_array())
                {
                    $storetag= explode(',',$row['Post_tagged_id']);
                    $has_liked="false";
                    $has_commented="false";
                }
                for($i=0;$i<count($storetag);$i++)
                {

                    $user=mysqli_query($con,"select user_id, profile_image_url from Wheel_User where user_id='$storetag[$i]'");

                    if(mysqli_num_rows($user)==0)
                    {
                        //For failure status if session id is wrong.
                        http_response_code(500);
                        echo json_encode(array("error_code"=>"500","error_message"=>"Sorry, post id does not exists.".die()));
                    }

                    else
                    {

                        while ($row = $user->fetch_array())
                        {

                            $tagged_users[$i]['user_id']=$row['user_id'];
                            $array['user_id']=$tagged_users[$i]['user_id'];
                            $pro_image_url[$i]=$row['profile_image_url'];
                            $short_image_url[$i]=str_replace('_b','_t',$pro_image_url[$i]);
                            $short_image_url[$i]=str_replace('/images/','/thumbnails/',$short_image_url[$i]);
                            $array['short_image_url']=$short_image_url[$i];

                        }

                    }

                    array_push($row_array,$array);

                }

            }

        }

            array_push($json_response,$row_array);
            echo str_replace('\/','/',json_encode($json_response)); 
    }
}

它返回以下对象

[
{
"id": "1111",
"image_urls": [
  "https://docs.google.com/document/d/14kVqw9d2kzYIEClN-SVp2Co2mlglM9F-8HIy0ggTZ3g/edit",
  "http://stackoverflow.com/questions/21762150/how-do-i-insert-data-from-a-json-array-into-mysql-database",
  "https://drive.google.com/?authuser=0#my-drive",
  "https://drive.google.com/?tab=mo&authuser=0#shared-with-me"
 ],

"0": {
  "user_id": "111",
  "short_image_url": "chrome://restclient/content/thumbnails/restclient_t.jpg"
},
"1": {
  "user_id": "321",
  "short_image_url": "chrome://restclient/thumbnails/restclient_t.jpg"
},
"2": {
  "user_id": "1234",
  "short_image_url": "http://54.169.40.195/wheel/wheel/service/testing/chetan/audio/c71dfe45421b2864476a0bde257f0a57e72084783ce859e26595599670904907.mp3"
 }
 }
]

但我想为这个数组分配名称

[
  {
  "id": "1111",
  "image_urls": [
  "https://docs.google.com/document/d/14kVqw9d2kzYIEClN-SVp2Co2mlglM9F-8HIy0ggTZ3g/edit",
  "http://stackoverflow.com/questions/21762150/how-do-i-insert-data-from-a-json-array-into-mysql-database",
  "https://drive.google.com/?authuser=0#my-drive",
  "https://drive.google.com/?tab=mo&authuser=0#shared-with-me"
  ],

 "tagged_users":[
"0": {
  "user_id": "111",
  "short_image_url": "chrome://restclient/content/thumbnails/restclient_t.jpg"
},
"1": {
  "user_id": "321",
  "short_image_url": "chrome://restclient/thumbnails/restclient_t.jpg"
},
"2": {
  "user_id": "1234",
  "short_image_url": "http://54.169.40.195/wheel/wheel/service/testing/chetan/audio/c71dfe45421b2864476a0bde257f0a57e72084783ce859e26595599670904907.mp3"
}
]

} 我不知道我在哪里添加这个数组名称。请帮我解决这个问题。 我无法像这样分配数组名称,因为$ row_array还包含其他数据

echo str_replace('\/','/',json_encode(array("tagged_user"=>$json_response));

2 个答案:

答案 0 :(得分:0)

尝试 -

array_push($row_array['tagged_users'],$array);

或者将其定义为 -

$row_array['tagged_users'] = array();

然后所有的值都会如你所愿。

答案 1 :(得分:0)

在倒数第二行,这应该是你想要的:

array_push($json_response,array("tagged_users" => $row_array));

编辑删除第二部分。