2009-07-29 13 views
16

domanda abbastanza semplice effettivamente ..PHP - Unisci due array (stessa lunghezza) in uno associativo?

è possibile in PHP combinare due array separati della stessa lunghezza di un array associativo in cui vengono utilizzati i valori del primo array come chiavi nell'array associativo?

Non posso farlo, ma sto cercando un'altra funzione (incorporata) o una soluzione più efficiente ..?

function Combine($array1, $array2) { 
    if(count($array1) == count($array2)) { 
     $assArray = array(); 
     for($i=0;$i<count($array1);$i++) { 
      $assArray[$array1[$i]] = $array2[$i]; 
     } 
     return $assArray; 
    } 
} 
+2

"asino allineamento", sicuramente un facile da ricordare nome. ;) –

risposta

4

C'è già un array_combine function:

$combined = array_combine($keys, $values); 
+0

ma la combinazione di array non porta valori nulli in una nuova matrice. :( – gumuruh

+0

@gumuruh Potresti approfondire? – Gumbo

7

è necessario array_combine.

<?php 
$a = array('green', 'red', 'yellow'); 
$b = array('avocado', 'apple', 'banana'); 
$c = array_combine($a, $b); 

print_r($c); 
?> 
2

Ciao a tutti io vi mostrerò come unire 2 array in un array

abbiamo 2 array e farò un array da loro

$data_key = array('key1','key2'); 
$data_value = array('val1','val2'); 

lascia dichiarare il principale array

$main_array = array(); 

ora riempiamolo con e 2 array

foreach ($data_key as $i => $key) { 
     $main_array[$key] = $data_value[$i]; 
} 

Ora vediamo il risultato utilizzando var_dump($main_array);

array(2) { 
["key1"]=> string(4) "val1" 
["key2"]=> string(4) "val2" 
} 

spero che possa aiutare qualcuno :)