【问题标题】:How to add loop data to json object in CI?如何将循环数据添加到 CI 中的 json 对象?
【发布时间】:2017-01-07 07:44:17
【问题描述】:

我正在尝试将循环数据合并到 json 对象,每次我只得到循环的最后一个结果,所以我将该变量声明为一个数组,它很好,我得到了我的结果,但格式不正确,有多余的方括号,我不想要,因为在前端解析时,它会产生问题。

下面我提供我的代码。

{

  "status": "success",
  "statusReason": "Favouritelist",
  "result": {
    "Favouritelist": [
      [ //want to remove this square bracket
        {
          "branch_id": "1234",
          "branch_name": "avis1",
          "branch_image": "uploads/avis.png",
          "branch_gps": "12.9250,77.5938",
          "branch_address": "eredfdf",
          "branch_phone": "2147483647",

        }
      ],//want to remove this square bracket
      [//want to remove this square bracket
        {
          "branch_id": "1234",
          "branch_name": "avis1",
          "branch_image": "uploads/avis.png",
          "branch_gps": "12.9250,77.5938",
          "branch_address": "eredfdf",
          "branch_phone": "2147483647",


        }
      ]//want to remove this square bracket
    ]
  }
}

我的 CI 代码

foreach ($tempquery->result() as $res1){
         $car_id = $res1->car_id;  

       if(empty($timestamp)){

 $this->db->select("IFNULL(branch.branch_id,'') as branch_id,IFNULL(branch.name,'') as branch_name,IFNULL(branch.image,'') as branch_image,IFNULL(branch.gps,'') as branch_gps,IFNULL(branch.address,'')as branch_address,IFNULL(branch.phone,'')as branch_phone,(select IFNULL(avg(rating),0) from branch_rating where user_id='$user_id'  and delete_status ='false' )as branch_rating,IFNULL(car_id,'') as car_id,IFNULL(cars.name,'') as car_name,IFNULL(cars.image,'') as car_image,IFNULL(model,'') as model,IFNULL(price,'')as price,IFNULL(year,'')as year,IFNULL(type,'')as type,IFNULL(`no_of_seats`,'')as `no_of_seats`,IFNULL(`gear_type`,'') as `gear_type`,IFNULL(color,'') as color,insurance,status,IFNULL(description,'') as description,(select IFNULL(avg(rating),0) from car_rating where user_id='$user_id'  and delete_status ='false' )as car_rating,car_types.typename AS carType,cars.petrol_type,car_types.car_type_id,cars.delivery_charges,cars.services");
 $this->db->from("branch");
 $this->db->join("cars","branch.branch_id=cars.branch_id");
 $this->db->join('car_types', 'cars.car_type_id = car_types.car_type_id');
 $this->db->where("cars.car_id",$car_id);
 $this->db->where("branch.delete_status" , "false");
 $this->db->where("cars.delete_status" , "false");
$car_details= $this->db->get();  
 $cdetail_new[]=$car_details->result(); ///added [] to mearge dat


           }

 Response::code_200("Favouritelist", array("Favouritelist" => $cdetail_new));  

任何人都可以建议我,我做错了什么..

感谢 ADV

【问题讨论】:

  • 尝试从 [] 中删除,就像这样 $cdetail_new=$car_details->result(); 会这样吗?
  • 格式很好,但我只得到最后一行,有很多结果。 @Praveen Kumar
  • 哇,这太疯狂了。你能告诉var_dump($car_details->result())是什么,可能是问题的根源吗?
  • 试试这个? $cdetail_new[] = $car_details->result()[0]; 直觉... :) 这可能有用吗?如果是这样,我会将其添加为答案。

标签: javascript php json codeigniter


【解决方案1】:

看起来源与数组一起打包。这里的result() 函数,或许将其作为数组给出?

$car_details->result();

如果是这种情况,您可能想在此处打开它。如果您使用的是最新版本的 PHP,则可以使用此表示法:

$cdetail_new[] = $car_details->result()[0];

如果没有,请尝试旧的:

$result = $car_details->result();
$cdetail_new[] = $result[0];

您可以检查这是否是问题所在,即result() 是否将输出作为具有单个元素的数组提供:

$car_details = $this->db->get();
var_dump($car_details->result());  // Is this resulting as an array?
die();
$cdetail_new[] = $car_details->result(); ///added [] to mearge dat

【讨论】:

  • 是的,我得到了这个 $cdetail_new[] = $result[0];我使用的是最低版本的 php。所以我使用了第二个。现在它对我来说很好。非常感谢您
猜你喜欢
  • 1970-01-01
  • 2019-07-06
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 2015-08-29
  • 2021-06-26
相关资源
最近更新 更多