Hola.
Tengo que comparar dos arrays.
El primero tiene la siguiente estructura al utilizar print_r($a)
Array ( [0] => Clue [1] => segpopular [2] => acredita [3] => aguapota [4] => aguaredmun )
El segundo es resultado de una consulta sql, pero guardado en un array.
Array ( [0] => Array ( [COLUMN_NAME] => Clue ) [1] => Array ( [COLUMN_NAME] => recetas ) [2] => Array ( [COLUMN_NAME] => acredita ) [3] => Array ( [COLUMN_NAME] => 35067 ) )
Quiero conocer la intesección de los value, por ejemplo en este caso quiero obtener en otro arreglo los valores: Clue y acredita.
Estoy intentando con este método, pero al ser un array bidimensional supongo que no funciona igual
$array3 = array_intersect_key($array1, $array2);
Alguna idea? :)
Edito.
Olvide mencionar que voy a comparar 170 valores (array1) contra 200 valores (array2) aproximadamente y esto se hará 5100 veces
Gracias
Lo unico que se me ocurre es reducir el segundo array y hacerlo como el primero..
<?php
function reduceArray($input){
foreach($input as $index=>$arr){$input[$index] = $arr['COLUMN_NAME'];}
return $input;
}
$array = array('Clue','segpopular','acredita','aguapota','aguaredmun');
$array2 = array(
array('COLUMN_NAME'=>'recetas'),
array('COLUMN_NAME'=>'acredita'),
array('COLUMN_NAME'=>'35067')
);
print_r(array_intersect_key($array, reduceArray($array2)));
// Array ( [0] => Clue [1] => segpopular [2] => acredita )
?>
El caso es que eso implica recorrerlo 2 veces... seguramente php tenga alguna función para esto xD
Saludos
que tal si usas algo asi
array3;
foreach(array1 as subarray){
if(array_seach(subarray[COLUMN_NAME],array2)
array3[]=subarray[COLUMN_NAME];
mas o menos esa es la idea, si tiene errores sorry, estoy en cel :p
Gracias por responder.
#!drvy tú método es precisamente lo tengo ahora. Solo que pensé que habría un método nativo para hacerlo más práctico.
engelx Probaré tu método para ver cual lo realiza en menos tiempo.
Saludos.