2009-07-29 17 views
16

pregunta bastante sencillo en realidad ..PHP: ¿fusiona dos matrices (de igual longitud) en una asociativa?

es posible en PHP para combinar dos matrices independientes de la misma longitud a una matriz asociativa, donde se utilizan los valores de la primera matriz como claves en el array asociativo?

Podría por supuesto hacer esto, pero estoy buscando otra función (incorporada) o una solución más eficiente ...?

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

"matriz culo", sin duda una fácil de recordar el nombre. ;) –

Respuesta

4

Ya hay un array_combine function:

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

pero la matriz combinada no admite valores nulos en una nueva matriz. :( – gumuruh

+0

@gumuruh ¿Podrías dar más detalles sobre eso? – Gumbo

7

necesita array_combine.

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

print_r($c); 
?> 
2

hola a todos yo le mostrará cómo combinar 2 arrays en una matriz

tenemos 2 matrices y voy a hacer una serie de ellos

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

permite declarar la principal matriz

$main_array = array(); 

ahora vamos a llenarlo con th e 2 matrices

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

Ahora vamos a ver el resultado mediante el uso de var_dump($main_array);

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

espero que pueda ayudar a alguien :)

Cuestiones relacionadas