【问题标题】:convert every array inside an array to objects [duplicate]将数组中的每个数组转换为对象[重复]
【发布时间】:2021-09-14 14:54:22
【问题描述】:

我正在尝试使用 ajax 作为数据源的 Select2,并且我得到了正确的数据,但我需要将我的数组中的数组转换为 obj,以便 Select2 可以将它们作为选项“复制”。 我有什么:

  Array
    (
    [0] => Array
        (
            [0] => john
            [1] => johnjohn
        )

[1] => Array
    (
        [0] => john2
        [1] => johnjohn2
    )

[2] => Array
    (
        [0] => john3
        [1] => johnjohnjohn3
    )
.....
)

我需要什么:

    {
  "results": [
    {
      "id": 1,
      "text": "jhon",
      "text2": "jhonjhon"

    },
    {
      "id": 2,
      "text": "jhon2",
      "text2": "jhon22"
    }
  ]
}

正如文档中所说,我需要将它们设为对象:

Select2 要求每个对象都包含一个 id 和一个 text 属性。与数据对象一起传递的其他参数将包含在 Select2 公开的数据对象中。

我试过了: How to convert an array to object in PHP?Convert Array to Object 我想不通。

【问题讨论】:

    标签: php arrays object


    【解决方案1】:

    遍历数组,为每个元素创建一个包含值的关联数组并将其推送到结果数组。

    $objects = [];
    foreach ($arrays as $i => $vals) {
        $objects[] = ['id' => $i+1, 'text' => $vals[0], 'text2' => $vals[1]];
    }
    

    【讨论】:

    • 感谢它的工作,但我忘了,我有一个问题,我需要这样:{ "results": [ { "id": 1, "text": "Option 1" }, { "id": 2, "text": "Option 2" } ], "pagination": { "more": true } } 我怎样才能将结果添加到它?
    • 我看不出这与您显示的输入有什么关系。请编辑问题以澄清。
    • 使用johnjohn等值显示结果应该是什么
    • 已编辑,抱歉暴露问题
    • 我已经更新了答案。
    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2023-03-19
    • 2016-03-22
    相关资源
    最近更新 更多