Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscar un array dentro de otro array

Estas en el tema de Buscar un array dentro de otro array en el foro de PHP en Foros del Web. Hola chic@s, me preguntaba si conocéis o tenéis alguna función que haga lo siguiente. Tenemos un array con varios elementos a encontrar y otro con ...
  #1 (permalink)  
Antiguo 17/03/2015, 13:26
 
Fecha de Ingreso: diciembre-2013
Mensajes: 37
Antigüedad: 10 años, 3 meses
Puntos: 1
Buscar un array dentro de otro array

Hola chic@s, me preguntaba si conocéis o tenéis alguna función que haga lo siguiente.
Tenemos un array con varios elementos a encontrar y otro con los datos. Lo que quiero es que si alguna palabra del array DATOS contiene alguna del array FINDME la ignore y si no encuentra ninguna coincidencia la IMPRIMA por pantalla.

En el ejemplo sólo se mostraría MADRID puesto que la letra "v" está en la palabra valencia y la "o" en barcelona.

$findme=array(
"v",
"o",
"u",
);

$data=array(
"madrid",
"barcelona",
"valencia");
  #2 (permalink)  
Antiguo 17/03/2015, 13:37
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 13 años, 11 meses
Puntos: 468
Respuesta: Buscar un array dentro de otro array

de primeras te diria que usaras in_array()

Código PHP:
Ver original
  1. if(in_array($findme[0],$data)) {
  2.     echo "el valor existe";
  3. } else { echo "el valor no existe"; }

Pero te dirá que el valor no existe pues busca el valor exacto en un array, y "v" no es lo mismo que "valencia" tendrás que jugar algo más. pues me he paseado por las funciones de arrays y no veo ninguna función especifica para ello
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #3 (permalink)  
Antiguo 17/03/2015, 13:40
 
Fecha de Ingreso: diciembre-2013
Mensajes: 37
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Buscar un array dentro de otro array

Cita:
Iniciado por rodrypaladin Ver Mensaje
de primeras te diria que usaras in_array()

Código PHP:
Ver original
  1. if(in_array($findme[0],$data)) {
  2.     echo "el valor existe";
  3. } else { echo "el valor no existe"; }

Pero te dirá que el valor no existe pues busca el valor exacto en un array, y "v" no es lo mismo que "valencia" tendrás que jugar algo más. pues me he paseado por las [URL="http://php.net/manual/es/ref.array.php"]funciones de arrays[/URL] y no veo ninguna función especifica para ello
Gracias cielo, llevo un buen rato buscando y tampoco veo nada específico para lo que quiero. A ver si se me enciende la bombillita
  #4 (permalink)  
Antiguo 17/03/2015, 14:35
 
Fecha de Ingreso: diciembre-2013
Mensajes: 37
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Buscar un array dentro de otro array

Cita:
Iniciado por andreiya Ver Mensaje
Hola chic@s, me preguntaba si conocéis o tenéis alguna función que haga lo siguiente.
Tenemos un array con varios elementos a encontrar y otro con los datos. Lo que quiero es que si alguna palabra del array DATOS contiene alguna del array FINDME la ignore y si no encuentra ninguna coincidencia la IMPRIMA por pantalla.

En el ejemplo sólo se mostraría MADRID puesto que la letra "v" está en la palabra valencia y la "o" en barcelona.

$findme=array(
"v",
"o",
"u",
);

$data=array(
"madrid",
"barcelona",
"valencia");
ACTUALIZO: Solución parcial. Con el siguiente código se muestran las palabras que tienen coincidencias. Si meto un else se mostraría Madrid 3 veces y Barcelona y Valencia 2.

Código PHP:
for($i=;$i<count($data);$i++)
{
    
    for(
$u=;$u<count($findme);$u++)
    {
         
$found=strpos($data[$i],$findme[$u]);
         if(
$found !==false)
         {
            echo 
$data[$i];
             echo 
"<br>"
         } 
    }


Última edición por andreiya; 17/03/2015 a las 14:44
  #5 (permalink)  
Antiguo 17/03/2015, 14:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Buscar un array dentro de otro array

Cita:
Mostraría Valencia y Barcelona. Pero no me funciona el else debajo para que muestre MADRID que es la única que no tiene coincidencias.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 17/03/2015, 14:48
 
Fecha de Ingreso: diciembre-2013
Mensajes: 37
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Buscar un array dentro de otro array

Cita:
Iniciado por hhs Ver Mensaje
Me estoy volviendo loca, el código hace justo lo contrario a lo que quiero
Voy a ver si consigo sacar Madrid aislado.
  #7 (permalink)  
Antiguo 17/03/2015, 15:20
 
Fecha de Ingreso: diciembre-2013
Mensajes: 37
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Buscar un array dentro de otro array

Me autorespondo. Ya he solucionado el tema. No es el mejor código del mundo, pero al menos me funciona. Espero sirva a alguien, a parte de a mí, jiji

Añadí una ciudad más al código original, sólo para comprobar que funcionaba.

Código PHP:
$findme=array(

"o",
"u",
"v",
);

$data=array(
"madrid",
"barcelona",
"valencia",
"cadiz");
 

 

for(
$i=;$i<count($data);$i++)
{
    
$contador=0;
    for(
$u=;$u<count($findme);$u++)
    {
         
$found=strpos($data[$i],$findme[$u]);
         if(
$found !==false)
         {
                
$contador++;
         } 
        
         
    }
      if(
$contador===0)
         {
            echo 
$data[$i];
            echo 
"<br>";
             
$contador=0;
         }


Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.