如何像数组一样转换成json对象

问题描述 投票:0回答:2

我的代码如下:

// seatToCancel = U23,L43,U12

      $tin='S4243534';         //Booking id

      $seatsToCancel=$_GET['seatsToCancel'];

      $seatArray=explode(",",$seatsToCancel);

      $seatCount=count($seatArray);

      $SeatsTocancel=implode ( '", "', $seatArray );

       $params = array(
                                    "tin"=>"$tin",
                                  "seatsToCancel"=>array($SeatsTocancel)
                         );

    echo $params=json_encode($params);

我想要这样的输出:

{"tin":"S4243534" ,"seatsToCancel":["U23","L43","U12"]}
php json
2个回答
0
投票

所以我猜你要取消的座位是以URL中的逗号分隔列表形式出现的。所以你需要做的是explode() GET参数把它变成一个数组,把它作为值放到keyjson_encode()它。

$seatsToCancel = explode(',', $_GET['seatsToCancel']);
$params = [
    'tin' => $tin,
    'seatsToCancel' => $seatsToCancel,
];
$paramsJson = json_encode($params);

这应该会得到你想要的结果:

{"tin":"S4243534" ,"seatsToCancel":["U23","L43","U12"]}

您可能想要考虑如果GET参数为空以及是否要进行任何其他错误检查会发生什么。


1
投票

我假设你的$seatArray["U23","L43","U12"]? 在这种情况下,您可以这样做:

$seatArray = ["U23","L43","U12"];

$finalarray = ["tin"=>$tin,"seatsToCancel" => $seatArray];

echo json_encode($finalarray); //{"tin":"S4243534","seatsToCancel":["U23","L43","U12"]}

编辑以添加编辑问题的新要求

© www.soinside.com 2019 - 2024. All rights reserved.