PHP将多个数组值保存为一个

时间:2017-04-13 22:12:46

标签: php arrays

如何将三个数组的值添加到一个?

当我喜欢这个时

$response["data"] =  $data + $user_poi + $user_mileage;

它确实将数组添加到一个但不是完整的数组中。请考虑以下事项:

$data = {data 1, data 2, data 3, data 4, data 5, data 6, data, 7 data 8}
$user_poi = {poi 1}
$user_mileage {mileage 1, mileage 2, mileage 3, mileage 4}

如果我写:$response["data"] = $data + $user_poi + $user_mileage;

它给了我:{data 1, data 2, data 3, data 4, data 5, data 6, data, 7 data 8}

如果我写:$response["data"] = $user_poi + $user_mileage + $data;

它给了我:{poi 1, mileage 2, mileage 3, mileage 4, data 5, data 6, data, 7 data 8}

我想要写的是:$response["data"] = $user_poi + $user_mileage + $data;

得到结果:{poi 1, mileage 1, mileage 2, mileage 3, mileage 4, data 1, data 2, data 3, data 4, data 5, data 6, data, 7 data 8}

1 个答案:

答案 0 :(得分:0)

我将回答你问题的第一部分。对于第二部分,我强烈建议将其作为一个新的单独问题发布,并将其从此处删除。

  

如何将三个数组的值添加到一个?

尝试array_merge()

$data = ["data 1", "data 2", "data 3"];
$poi = ["poi 1", "poi 1", "poi 3"];
$mileage = ["mileage 1", "mileage 2", "mileage 3"];

$response = array_merge($data, $poi, $mileage);

在此之后,$response将如下所示:

array(
  "data 1",
  "data 2",
  "data 3",
  "poi 1",
  "poi 2",
  "poi 3",
  "mileage 1",
  "mileage 2",
  "mileage 3"
)

为什么+无效?

检查问题+ operator for array in PHP?

总结那里写得很好的答案,使用+,两个数组中存在的键将被左侧数组中的值填充,这就是为什么你从未见过输出中的所有预期元素。

更新:如果其中一个数组是null怎么办?

检查问题merge_array returns null if one or more of arrays is empty?

基本上,如果你的输入数组可能是null,你可以显式地将它们转换为数组,以确保空值将变为空数组:

$response = array_merge((array)$data, (array)$poi, (array)$mileage);