<?php
$one = array(11 => 'a', 12 => 'b', 13 => 'c');
$two = array(14 => 'd', 15 => 'e');
print_r(array_merge($one, $two));
这回报我:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
)
我想收到:
Array
(
[11] => a
[12] => b
[13] => c
[14] => d
[15] => e
)
如何将两个数组与索引合并?这可能吗?如果是,怎么样?
答案 0 :(得分:5)
使用数字键的数组将array_merge
丢弃其键。相反,请使用+
运算符代替array_merge
:
print_r $one + $two;
这会产生:
Array
(
[11] => a
[12] => b
[13] => c
[14] => d
[15] => e
)
或者,使用字符串键而不是数字键。
答案 1 :(得分:2)
你试过吗?
$three = $one + $two;
这应保留密钥
答案 2 :(得分:-1)
这是一种可能的解决方案。
$one = array(11 => 'a', 12 => 'b', 13 => 'c');
$two = array(14 => 'd', 15 => 'e');
function array_merge_values()
{
$args = func_get_args();
$result = $args[0];
for ($_ = 1; $_ < count($args); $_++)
foreach ($args[$_] as $key => $value)
{
if (array_key_exists($key,$result))
$result[$key] += $value;
else
$result[$key] = $value;
}
return $result;
}
var_dump(array_merge_values($one,$two));
输出
array (size=5)
11 => string 'a' (length=1)
12 => string 'b' (length=1)
13 => string 'c' (length=1)
14 => string 'd' (length=1)
15 => string 'e' (length=1)
使用print_r
Array
(
[11] => a
[12] => b
[13] => c
[14] => d
[15] => e
)