如何使用PHP获取json对象的数组?

时间:2015-02-03 13:37:39

标签: php json

这是我获取json格式数据的代码。但它不是我所需的确切格式。任何人都可以帮我解决这个问题。

 while ($row = $get_postid->fetch_array())
            {
                $comment_id[]=$row['comment_id'];
                $id[]=$row['post_id'];
                $user_id[]=$row['user_id'];
                $comm_description[]=$row['comment_description'];
                $time[]=$row['creation_date'];


            }

            for($i=0;$i<count($user_id);$i++)
            {

                $user=mysqli_query($con,"select * from Wheel_User where user_id='$user_id[$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())
                    {

                        $users[$i]['id']=$row['user_id'];
                        $pro_image_url[$i]=$row['profile_image_url'];
                        $users[$i]['title']=$row['user_name'];
                        $users[$i]['about_user']="";
                        $short_image_url[$i]=str_replace('_b','_t',$pro_image_url[$i]);
                        $short_image_url[$i]=str_replace('/images/','/thumbnails/',$short_image_url[$i]);
                        $users[$i]['short_image_url']=$short_image_url[$i];
                    }
                }  
            }


        echo str_replace('\/','/', json_encode(array("id"=>$id,"description"=>$comm_description,"time"=>$time,"user"=>$users)));

以上代码的结果在json格式中是这样的

{
 id: [3]
  0:  "1000"
  1:  "1000"
  2:  "1000"

description: [3]
  0:  "hai hello bye"
  1:  "helloooooo"
  2:  "haiiiiiii"

time: [3]
  0:  "0000-00-00 00:00:00"
  1:  "0000-00-00 00:00:00"
  2:  "0000-00-00 00:00:00"

user: [3]
 0:  {
    id: "1234"
   title: "chetan"
   about_user: ""
   short_image_url: "http://54.169.40.195/wheel/wheel/service/testing/chetan/audio/c71dfe45421b2864476a0bde257f0a57e72084783ce859e26595599670904907.mp3"
   }
   1:  {
   id: "4321"
   title: ""
   about_user: ""
   short_image_url: "http://localhost/phpmyadmin/#PMAURL-26:tbl_change.php?db=wheel&table=Wheel_User&server=1&target=&token=9f24bb1783394ac86321c4f15ceacf7a"
  }
  2:  {
  id: "5678"
  title: "dinesh"
  about_user: ""
  short_image_url: "http://localhost/phpmyadmin/#PMAURL-24:tbl_change.php?db=wheel&table=Wheel_User&server=1&target=&token=9f24bb1783394ac86321c4f15ceacf7a"
}

}

但我希望结果采用以下格式

{
 id:"1000",
 description:"post details of user",
time:"0000-00-00 00:00:00",      
user:{
    id: "1234"
   title: "chetan"
   about_user: ""
   short_image_url: "http://54.169.40.195/wheel/wheel/service/testing/chetan/audio/c71dfe45421b2864476a0bde257f0a57e72084783ce859e26595599670904907.mp3"
   }

}
{
 id:"1000",
 description:"post details of user",
time:"0000-00-00 00:00:00",      
user: {
    id: "4321"
   title: "prasanna"
   about_user: ""
   short_image_url: "http://54.169.40.195/wheel/wheel/service/testing/chetan/audio/c71dfe45421b2864476a0bde257f0a57e72084783ce859e26595599670904907.mp3"
   }

}

任何人都可以帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

您应该重建阵列以获得所需的输出。尝试使用以下代码替换最后一行代码:

$objectArray = array();
for($i=0;$i<count($id);$i++) {
    $objectArray[$i]['id'] = $id[$i];
    $objectArray[$i]['description'] = $comm_description[$i];
    $objectArray[$i]['time'] = $time[$i];
    $objectArray[$i]['user'] = $users[$i];
}

echo str_replace('\/','/', json_encode($objectArray)));