如何连接php数组

时间:2016-06-10 13:35:31

标签: php arrays

我想使用php将

中包含的所有数组连接成一个

我在开头有这个数组:

{
  "errors": [
    [
      {
        "id": "login1",
        "error": "Invalid"
      },
      {
        "id": "login2",
        "error": "Invalid"
      },
      {
        "id": "login3",
        "error": "Invalid"
      }
    ],
    [],
    [
      {
        "id": "login10", 
        "error": "Invalid"
      },
      {
        "id": "login11", 
        "error": "Invalid"
      }
    ]
  ]
}

我想像这样改变它:

{
  "errors": [
      {
        "id": "login1",
        "error": "Invalid"
      },
      {
        "id": "login2",
        "error": "Invalid"
      },
      {
        "id": "login3",
        "error": "Invalid"
      },
      {
        "id": "login10", 
        "error": "Invalid"
      },
      {
        "id": "login11", 
        "error": "Invalid"
      }
  ]
}

我尝试array_pusharray_mergearray_merge_recursive 我的错误数组填充了多个登录数组,我希望将所有数组都放在一个数组中。 我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

首先,您似乎拥有JSON数据,因此您需要json_decode它。

然后,您似乎需要删除第一级层次结构。循环遍历errors的子数组并将它们合并在一起。

或许这样的事情:

$errors = [];
foreach($array['errors'] AS $subarray) {
    $errors = array_merge_recursive($errors, $subarray);
}

工作示例:https://3v4l.org/JgqgO

您也可以使用类似array_reduce的内容来执行此操作。

$errors = array_reduce($array['errors'], function($errors, $subarray) {
   return array_merge_recursive($errors, $subarray); 
}, []);