如何将三个数组的值添加到一个?
当我喜欢这个时
$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}
答案 0 :(得分:0)
我将回答你问题的第一部分。对于第二部分,我强烈建议将其作为一个新的单独问题发布,并将其从此处删除。
如何将三个数组的值添加到一个?
$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);