2010-08-03 28 views
8

nel tentativo di unire due matrici insieme. entrambi hanno tasti numerici e sono unici. quando uso array_merge, ri-indici a partire da 0.unire due array, mantenendo i tasti numerici

così Diciamo che ho

[2] = abc 
[5] = cde 

e ho

[32] = fge 
[13] = def 

voglio fondere questi due insieme mantenendo le chiavi uniche .

di seguito è la spiegazione sul comportamento di unione corrente .. in ogni modo intorno a questo?

"Se tutti gli array contengono solo chiavi numeriche, alla matrice risultante vengono fornite chiavi incrementali a partire da zero."

risposta

15

Provare a utilizzare l'operatore +.

$one = array(2 => 'abc', 5 => 'cde'); 
$two = array(32 => 'fge', 13 => 'def'); 
$three = $one + $two; 

$three dovrebbe apparire in questo modo:

[2] = abc 
[5] = cde 
[32] = fge 
[13] = def 
0

Prova questa:

$arr1 = array(); 
$arr2 = array(); 
$arrmerge = array(); 
array_push($arr, $arr1, $arr2); 

$ arr1 e $ arr2 sarà unire e memorizzato in $ arrmerge. Puoi accedervi con foreach.

Spero che funzioni!

+0

In realtà no , questo creerebbe un array 'matrice multidimensionale ($ arr1, $ arr2)'. – deceze

1
$result = array(2 => 'abc', 5 => 'cde') + array(32 => 'fge', 13 => 'def'); 
print_r($result); 
6

se si desidera unire array con i tasti numerici, tenere le chiavi e sostituire elementi da primo array da oggetti dalla seconda:

$a = array(0 => "a", 1 => "b"); 
$b = array(1 => "c", 5 => "d"); 
var_dump(array_diff_key($a, $b) + $b); 

produrrà:

array(3) { 
    [0]=> 
    string(1) "a" 
    [1]=> 
    string(1) "c" 
    [5]=> 
    string(1) "d" 
} 
Problemi correlati