【问题标题】:merge arrays PHP (slice)合并数组 PHP(切片)
【发布时间】:2014-08-22 10:42:07
【问题描述】:

我有一个这个数组(我在这里显示为 json..):

[
{
"icon1_name":"Home Address A",
"icon2_name":"Home Address B",
"icon3_name":"Home addressC",
},
{
"icon1_name":"OfficeA",
"icon2_name":"OfficeB",
"icon3_name":"OfficeC",
}

]

我正在尝试在中间(家庭地址和办公室之间)添加一个数组。 这是我试图做的:

array_splice( $myArray, 1, 0, $arrayToInsert );

但我得到的结果是数字:

    {
    "1":{
    "icon1_name":"OfficeA",
    "icon2_name":"OfficeB",
    "icon3_name":"OfficeC",
    "
    },
  "2":{
    "icon1_name":"PhoneA",
    "icon2_name":"PhoneB",
    "icon3_name":"PhoneC",
    "
    },
    "3":{
    "icon1_name":"FaxA",
    "icon2_name":"FaxB",
    "icon3_name":"FaxC",
    }}

如何在不编号的情况下进行此合并?也就是说,保持原来的json格式。

【问题讨论】:

  • 没有编号是什么意思?
  • 看第二个 JSON。这是不一样的。它有数组编号:"1","2","3"...
  • 您可以在 php 中调用数组上的 array_values,这会将数字重置为以 0 开头,并且在转换为 json 时使外部数组成为数组,而不是对象。
  • @jonathankuhn 很好,你应该把它作为一个答案
  • @nl-x 我可以,但这确实不理想。真正的答案应该是如何首先没有问题。但它确实有效。我只是没有时间(在工作中)调试和修复它,所以我通常只是抛出快速修复的快速 cmets。

标签: php merge slice


【解决方案1】:

您发布的array_splice 代码可以与解码为此处的 JSON 字符串一起正常工作:

$myArray = json_decode('[
    {
        "icon1_name":"Home Address A",
        "icon2_name":"Home Address B",
        "icon3_name":"Home addressC"
    },
    {
        "icon1_name":"OfficeA",
        "icon2_name":"OfficeB",
        "icon3_name":"OfficeC"
    }
]');

$arrayToInsert = json_decode('[
    {
        "icon1_name":"PhoneA",
        "icon2_name":"PhoneB",
        "icon3_name":"PhoneC"
    }
]');

array_splice( $myArray, 1, 0, $arrayToInsert );

print_r( json_encode($myArray) );

输出:

[
  {
    "icon1_name":"Home Address A",
    "icon2_name":"Home Address B",
    "icon3_name":"Home addressC"
  },
  {
    "icon1_name":"PhoneA",
    "icon2_name":"PhoneB",
    "icon3_name":"PhoneC"
  },
  {
    "icon1_name":"OfficeA",
    "icon2_name":"OfficeB",
    "icon3_name":"OfficeC"
  }
]

您要解码为 PHP 数组的 JSON 字符串是否与这些不同?

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 2012-11-10
    • 1970-01-01
    • 2018-12-20
    • 2020-08-24
    • 2019-01-08
    • 2012-04-09
    • 2014-08-25
    • 1970-01-01
    相关资源
    最近更新 更多