我有一个 .php 文件,它以 JSON 格式输出产品列表,但它创建了一个大的 JSON:{"monumentid1":"1","name1":"Text","region1":"Text","monumentid2":"2","name2":"Text","region2":"Text","monumentid3":"3","name3":"Text","region3":"Text","monumentid4":"4","name4":"Text","region4":"Text","monumentid5":"111","name5":"Text","region5":"Text"}...我需要将每个字符串这样排序到数组中:{"monument1":[{"monumentid1":"1"},{"name1":"Text"},{"region1":"Text"}]} etc.可以用PHP做吗?稍后我需要使用该 JSON。我目前使用的 PHP 文件:class SeznamMagnetekApi extends BaseApi{public function ToProcess($parametry){ $magnetkyInfo = Database::SqlGetFetchAll("select monumentid, name, region from monuments"); $i = 0; foreach ($magnetkyInfo as $info) { $i++; $this->json['monumentid' . $i] = $info['monumentid']; $this->json['name' . $i] = $info['name']; $this->json['region' . $i] = $info['region']; }}}和 BaseApi 类:abstract class BaseApi{protected $json = array();abstract function ToProcess($parametry);public function WriteJson(){ $this->json = json_encode($this->json, JSON_UNESCAPED_UNICODE); echo $this->json;}}谢谢你的帮助!
1 回答

神不在的星期二
TA贡献1963条经验 获得超6个赞
要获得您想要的输出,您可以使用以下代码:
$i = 0;
foreach ($magnetkyInfo as $info)
{
$i++;
$arr[]['monumentid' . $i] = $info['monumentid'];
$arr[]['name' . $i] = $info['name'];
$arr[]['region' . $i] = $info['region'];
$this->json['monumentid' . $i] = $arr;
}
但是 - 我认为最好有 1 个 json 对象作为它的元素:
foreach ($magnetkyInfo as $info)
{
$i++;
$obj = ["monumentid" => $info["monumentid"], "name" => $info["name"], "region" => $info["region"]];
$this->json['monumentid' . $i] = $obj;
}
现在,你有一个 id 作为数组的对象,每个对象都将是单独的对象(而不是数组)
- 1 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消