duanchi19820419 2016-02-26 07:16
浏览 28
已采纳

如何在php中的另一个json数组中创建一个json数组

I am working on android app with json data. For that I had make webservices using php and json. In which I got results but its not proper for my app. Below is my code:

<?php
require("config.inc.php");
$query= "SELECT * from zone";
try {
$stmt   = $db->prepare($query);
$result = @$stmt->execute($query_params);   
}
catch (PDOException $ex) {
$zone["success"] = 0;
$zone["message"] = "Database Error!";
die(json_encode($zone));
}
$rows = $stmt->fetchAll();
if ($rows) {

$zone["posts"]   = array();

foreach ($rows as $row) {
    $post  = array();
    $post["zone_id"]=$row["zone_id"];
    $post["zone_name"]=$row["zone_name"];
    $post["zone_turn"]=$row["zone_turn"];
    $post["zone_charge"]=$row["zone_charge"];

    $query1= "SELECT * from pincode_master where zone_id=".$row['zone_id']."";
    try {
        $stmt   = $db->prepare($query1);
        $result = @$stmt->execute($query_params);   
    }
    catch (PDOException $ex) {
        $zone["success"] = 0;
        $zone["message"] = "Database Error!";
        die(json_encode($zone));
    }
    $rows1 = $stmt->fetchAll();
    if ($rows1) {
        $zone["posts1"]   = array();

        foreach ($rows1 as $row1) {
            $post1  = array();
            //$post1["zone_id"]=$row1["zone_id"];
            $post1["pincode_number"]=$row1["pincode_number"];
            //echo $post["pincode_number"];

             array_push($zone["posts1"], $post1);
        }

    }
     array_push($zone["posts"], $post,$zone["posts1"]);
    }  
  echo json_encode($zone);
  } else {
  $zone["success"] = 0;
  $zone["message"] = "No Zone asssign for this day!";
  }
 ?>

From above code I got below json array. It will contain all data in one array except the pincode number because I got it from another table.:

{"posts[{"zone_id":"2","zone_name":"A","zone_turn":"Monday,Thrusday","zone_charge":"15"},[{"pincode_number":"390007"},{"pincode_number":"390016"},{"pincode_number":"390021"},{"pincode_number":"390023"}],{"zone_id":"3","zone_name":"B","zone_turn":"Tuesday,Friday","zone_charge":"15"},[{"pincode_number":"390001"},{"pincode_number":"390004"},{"pincode_number":"390006"},{"pincode_number":"390010"},{"pincode_number":"390018"},{"pincode_number":"390019"},{"pincode_number":"390020"},{"pincode_number":"390022"}],{"zone_id":"7","zone_name":"W","zone_turn":"Saturday,Sunday,Friday","zone_charge":"15"},[{"pincode_number":"390001"},{"pincode_number":"390004"},{"pincode_number":"390006"},{"pincode_number":"390010"},{"pincode_number":"390018"},{"pincode_number":"390019"},{"pincode_number":"390020"},{"pincode_number":"390022"}],{"zone_id":"8","zone_name":"X","zone_turn":"Wednesday,Saturday,Sunday","zone_charge":"15"},[{"pincode_number":"390001"},{"pincode_number":"390004"},{"pincode_number":"390006"},{"pincode_number":"390010"},{"pincode_number":"390018"},{"pincode_number":"390019"},{"pincode_number":"390020"},{"pincode_number":"390022"}]],"posts1":[{"pincode_number":"390001"},{"pincode_number":"390004"},{"pincode_number":"390006"},{"pincode_number":"390010"},{"pincode_number":"390018"},{"pincode_number":"390019"},{"pincode_number":"390020"},{"pincode_number":"390022"}]}

But I want below one:

{"posts[{"zone_id":"2","zone_name":"A","zone_turn":"Monday,Thrusday","zone_charge":"15","pincode_number":{"390007","390016","390021"}}]}
  • 写回答

2条回答 默认 最新

  • dp610807 2016-02-26 07:33
    关注

    You don't have to create a new array like this, $zone["posts1"] = array(); to add your pincodes, you can simply append the pincode data as well in to your already existing $post array.

    $post  = array();
    $post["zone_id"]=$row["zone_id"];
    $post["zone_name"]=$row["zone_name"];
    $post["zone_turn"]=$row["zone_turn"];
    $post["zone_charge"]=$row["zone_charge"];
    .
    .
    .
    
    $rows1 = $stmt->fetchAll();
        if ($rows1) {
    
            foreach ($rows1 as $row1) {
    
                $post["pincode_number"][] = $row1["pincode_number"];
    
            }
    
        }
        array_push($zone["posts"], $post);
       }  
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题