2012-10-31 45 views
0
<?php 

$one = array(11 => 'a', 12 => 'b', 13 => 'c'); 
$two = array(14 => 'd', 15 => 'e'); 

print_r(array_merge($one, $two)); 

這回我:array_merge使用索引

Array 
(
    [0] => a 
    [1] => b 
    [2] => c 
    [3] => d 
    [4] => e 
) 

我想獲得:

Array 
(
    [11] => a 
    [12] => b 
    [13] => c 
    [14] => d 
    [15] => e 
) 

我如何合併兩個數組索引嗎?這可能嗎?如果是,如何?

+3

嘗試'$ ARR = $的一個+ $ 2;' – air4x

+0

[PHP的可能重複:合併兩個數組,同時保持鍵,而不是重新索引?](http://stackoverflow.com/questions/3292044/php-merge-two-arrays-while-keeping-keys-instead-of-reindexing) – Gromer

回答

-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 
) 
5

使用數字鍵的數組將丟失其密鑰array_merge。相反,使用+運營商,而不是array_merge

print_r $one + $two; 

這將產生:

Array 
(
    [11] => a 
    [12] => b 
    [13] => c 
    [14] => d 
    [15] => e 
) 

另外,使用字符串鍵,而不是數字鍵。

2

你試過了嗎?

$three = $one + $two;

這應該保存鍵