|
|
 |
array_merge (PHP 4 , PHP 5) array_merge -- 合并两个或多个数组 说明array array_merge ( array array1, array array2 [, array ...])
array_merge() 将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
例子 1. array_merge() 例子 |
<?php
$array1 = array ("color" => "red", 2, 4);
$array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge ($array1, $array2);
print_r($result);
?>
|
$result 成为:
|
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
|
|
例子 2. 简单的 array_merge() 例子 |
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
|
别忘了数字键名将会被重新编号!
如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符:
|
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>
|
数字键名将被保留从而原来的关联保持不变。
|
参见 array_merge_recursive() 和 array_combine()。
tobias_mik at hotmail dot com
25-Jul-2003 08:14
This function merges any number of arrays and maintains the
keys:
<?php
function array_kmerge ($array) {
reset($array);
while ($tmp = each($array))
{
if(count($tmp['value']) > 0)
{
$k[$tmp['key']] =
array_keys($tmp['value']);
$v[$tmp['key']] =
array_values($tmp['value']);
}
}
while($tmp =
each($k))
{
for ($i = $start; $i <
$start+count($tmp['value']); $i ++)$r[$tmp['value'][$i-$start]] =
$v[$tmp['key']][$i-$start];
$start = count($tmp['value']);
}
return $r;
}
?>
| |