首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带索引的son数组

不带索引的son数组
EN

Stack Overflow用户
提问于 2017-01-25 19:38:31
回答 1查看 60关注 0票数 0

我有这段代码,主要是取一些行,放入一个4行一组的数组中

最初,数据的格式如下:

代码语言:javascript
复制
line1
line2
line3
line4
line5
line6
line7
line8

使用下面的代码,我将行传递给array:

代码语言:javascript
复制
$addresses = [];
foreach (preg_split("/((\r?\n)|(\r\n?))/", $nodes) as $line) {
    $temp[] = trim($line);
    if(count($temp) == 4){
        array_push($addresses,[
                    'ADDRESS' => $temp[0],
                    'STREET_NAME' => $temp[1],
                    'TOWN_NAME' => $temp[2],
                    'POST_CODE' => $temp[3]
                ]);
      $temp = [];
  }
}
var_dump(json_encode($addresses,JSON_PRETTY_PRINT));

但结果不是我想要的.:

代码语言:javascript
复制
{
  "1": {
      "ADDRESS": "10",
      "STREET_NAME": "TRIQ ID-DAR TA` PULTU",
      "TOWN_NAME": "BIRZEBBUGA",
      "POST_CODE": "BBG 1810"
  },
  "2": {
      "ADDRESS": "12",
      "STREET_NAME": "TRIQ ID-DAR TA` PULTU",
      "TOWN_NAME": "BIRZEBBUGA",
      "POST_CODE": "BBG 1810"
  }
}

我不想要索引..。

我需要这样的东西:

代码语言:javascript
复制
[
{
  "ADDRESS": "10",
  "STREET_NAME": "TRIQ ID-DAR TA` PULTU",
  "TOWN_NAME": "BIRZEBBUGA",
  "POST_CODE": "BBG 1810"
},
{
  "ADDRESS": "12",
  "STREET_NAME": "TRIQ ID-DAR TA` PULTU",
  "TOWN_NAME": "BIRZEBBUGA",
  "POST_CODE": "BBG 1810"
}
]

你知道这个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 19:55:16

这将创建您所要求的内容

代码语言:javascript
复制
$nodes = 'line1
line2
line3
line4
line5
line6
line7
line8
';

$addresses = [];
foreach (preg_split("/((\r?\n)|(\r\n?))/", $nodes) as $line) {
    $temp[] = trim($line);
    if(count($temp) == 4){
        $obj = new stdClass();
        $obj->ADDRESS =  $temp[0];
        $obj->STREET_NAME = $temp[1];
        $obj->TOWN_NAME = $temp[2];
        $obj->POST_CODE = $temp[3];

        $addresses[] = $obj;
        $temp = [];
    }
}
var_dump(json_encode($addresses,JSON_PRETTY_PRINT));

结果:

代码语言:javascript
复制
string(266) "[
    {
        "ADDRESS": "line1",
        "STREET_NAME": "line2",
        "TOWN_NAME": "line3",
        "POST_CODE": "line4"
    },
    {
        "ADDRESS": "line5",
        "STREET_NAME": "line6",
        "TOWN_NAME": "line7",
        "POST_CODE": "line8"
    }
]"

但是,当您查看编码后再解码为PHP数据类型的数据时,仍然会对对象进行数字索引,因为数组必须有索引。当您将此数据转换为javascript时,这适用于PHP和等效的javascript

代码语言:javascript
复制
print_r(json_decode(json_encode($addresses)));

结果

代码语言:javascript
复制
Array
(
    [0] => stdClass Object
        (
            [ADDRESS] => line1
            [STREET_NAME] => line2
            [TOWN_NAME] => line3
            [POST_CODE] => line4
        )

    [1] => stdClass Object
        (
            [ADDRESS] => line5
            [STREET_NAME] => line6
            [TOWN_NAME] => line7
            [POST_CODE] => line8
        )

)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41850666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档