创建数据json php

创建数据json php,php,json,sqlsrv,Php,Json,Sqlsrv,我有点困惑如何创建这样的响应数据 [ { "profile": "Profile 1", "kumpulan_spot": [ { "urutan": "1", "id": "0415AA9E2D", "checkpoint": "3. OFFICE DEPAN LT. 2", "lokasi": "WARU", "waktu": "none", "status"

我有点困惑如何创建这样的响应数据

  [
  {
    "profile": "Profile 1",
    "kumpulan_spot": [
      {
         "urutan": "1",
        "id": "0415AA9E2D",
        "checkpoint": "3. OFFICE DEPAN LT. 2",
        "lokasi": "WARU",
        "waktu": "none",
        "status": "none",
        "kondisi": "none",
        "foto": "none"
      },
      {
         "urutan": "2",
        "id": "0415AAA007",
        "checkpoint": "4. OFFICE KRIAN LT.3 - R. MIS",
        "lokasi": "KRIAN",
        "waktu": "none",
        "status": "none",
        "kondisi": "none",
        "foto": "none"
      }
    ]
  },
  {
    "profile": "Profile 2",
    "kumpulan_spot": [
      {
        "urutan": "3",
        "id": "0415AAA01B",
        "checkpoint": "2. OFFICE DEPAN LT.1 - R. MARKETING",
        "lokasi": "KRIAN",
        "waktu": "none",
        "status": "none",
        "kondisi": "none",
        "foto": "none"
      }
    ]
  }
]
但到目前为止,我一直在努力

$myparams['nik'] = $_POST['nik']; 

$procedure_params = array( 
array(&$myparams['nik']  , SQLSRV_PARAM_IN)

);
$sql = "EXEC SP_GETJADWAL @nik=?";
$stmt = sqlsrv_prepare($conn, $sql,$procedure_params);

 if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}
$return_hasil=[];
$myArray = []; 
if(sqlsrv_execute($stmt)){ 
    do {
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
        $arrItem=[];         
        $detailItem=[];
        // $i=0;

        //  while($i==0){
            $arrItem["Profile"]="Profile ".$row['Profile']; 
            // $i=1;
            //  }
            $detailCheckPoint=[];   
            $detailCheckPoint["urutan"]=$row['Urutan'];         
            $detailCheckPoint["id"]=$row['check_point_id'];
            $detailCheckPoint["checkpoint"]=$row['check_point_name'];
            $detailCheckPoint["lokasi"]=$row['check_point_loc'];
            $detailCheckPoint["waktu"]="none";
            $detailCheckPoint["status"]="none";
            $detailCheckPoint["kondisi"]="none";
            $detailCheckPoint["foto"]="none";
            $detailItem[]=$detailCheckPoint;    
            $arrItem["ListCheckPoint"]=$detailItem;
            $return_hasil[]=$arrItem;


    }


    } while ( sqlsrv_next_result($stmt) );
     echo json_encode($return_hasil);
}else{
  die( print_r( sqlsrv_errors(), true));
}
 }else{
     echo 'Connection Failure<br/>';
 }

我在创建数据json方面是新手,对如何实现我想要的响应有点困惑

从while循环中删除初始化

 $detailItem=[]; 

根据请求更新代码:

尝试以下代码:

我希望它能起作用

$arrItem["Profile"] ="Profile ".$row['Profile']; 
$detailCheckPoint=[];   
$detailCheckPoint["urutan"]=$row['Urutan'];         
$detailCheckPoint["id"]=$row['check_point_id'];
$detailCheckPoint["checkpoint"]=$row['check_point_name'];
$detailCheckPoint["lokasi"]=$row['check_point_loc'];
$detailCheckPoint["waktu"]="none";
$detailCheckPoint["status"]="none";
$detailCheckPoint["kondisi"]="none";
$detailCheckPoint["foto"]="none";
foreach ($return_hasil as $key1 => $value) {
    if($value["Profile"] === $arrItem["Profile"]) {
        var_dump($detailCheckPoint);
        $return_hasil[$key1]["ListCheckPoint"][] = $detailCheckPoint;
        continue 2;
    }
}
$arrItem['ListCheckPoint'] = array($detailCheckPoint);
$return_hasil[]=$arrItem;

有什么问题吗?格式看起来正确。要在“kumpulan_点”中插入多个数组。在什么条件下,您决定将元素放入“kumpulan_点”?@TouheedKhan,条件$arrItem[“Profile”]=“Profile”。$row[“Profile”];先生,因此配置文件可能有许多kumpulan_点仍不工作,配置文件1缺失,仅显示配置文件2和我的所有元素删除
detailCheckPoint=[]
,从中看,配置文件将不工作,它看起来像其获取最后一行数据表,因此配置文件1不显示@Nishant Nairits工作谢谢,但有1个数据无法显示到我的json结构@TouheedKhan@anasrachmadi什么数据?请解释一下,以便我可以纠正这个问题。所以在我的数据中有配置文件1包含json数组[1,2,3],配置文件2包含[1,2]。使用代码只需显示配置文件1[2,3]和配置文件2[2]@Touheed Khan[加入此聊天了解详细信息
$arrItem["Profile"] ="Profile ".$row['Profile']; 
$detailCheckPoint=[];   
$detailCheckPoint["urutan"]=$row['Urutan'];         
$detailCheckPoint["id"]=$row['check_point_id'];
$detailCheckPoint["checkpoint"]=$row['check_point_name'];
$detailCheckPoint["lokasi"]=$row['check_point_loc'];
$detailCheckPoint["waktu"]="none";
$detailCheckPoint["status"]="none";
$detailCheckPoint["kondisi"]="none";
$detailCheckPoint["foto"]="none";
foreach ($return_hasil as $key1 => $value) {
    if($value["Profile"] === $arrItem["Profile"]) {
        var_dump($detailCheckPoint);
        $return_hasil[$key1]["ListCheckPoint"][] = $detailCheckPoint;
        continue 2;
    }
}
$arrItem['ListCheckPoint'] = array($detailCheckPoint);
$return_hasil[]=$arrItem;