Foros del Web » Programando para Internet » PHP »

Buscar una palabra en un array multidimensional

Estas en el tema de Buscar una palabra en un array multidimensional en el foro de PHP en Foros del Web. Hola: Tengo una caja de texto (input), en la que se puede escribir una palabra. Y luego un boton, para que empiece la búsqueda. Entonces ...
  #1 (permalink)  
Antiguo 03/12/2008, 06:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Buscar una palabra en un array multidimensional

Hola:
Tengo una caja de texto (input), en la que se puede escribir una palabra.
Y luego un boton, para que empiece la búsqueda.

Entonces ahora empieza a buscar esa palabra en un array multidimensional.
Pero doy al boton, y no me sale nada!

Lo hago con la función stristr.

Y este es el código:

Código PHP:
if (isset($_POST['buscar'])) 
{
  
$palabra=$_POST['TxtBuscar'];
  
  for (
$i=0;$i<sizeof($array);$i++)
    {        
      for (
$j=0;j<3;$j++)
      {            
          if ((
stristr($palabra$array[$i][$j])))
          {
          echo 
"<table border=1 ALIGN=center CELLPACING=7> ";
          
          echo 
"
           <tr>
            <td> $array[$i][0] </td>
            <td> $array[$i][1] </td>
            <td> $array[$i][2] </td>
           </tr> "
;
          }
      }
    }    

Yo creo que uno de los posibles errores que puede tener es que, cojo mal el valor de lo que se escribe en la caja de texto (input), que es este código:
Código PHP:
$palabra=$_POST['TxtBuscar']; 
Siendo TxtBuscar, el name del 'text' o caja de texto.

Alguien me puede ayudar?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 03/12/2008, 09:07
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Buscar una palabra en un array multidimensional

Hola...

Pasame el array para verlo...

Saludos...
  #3 (permalink)  
Antiguo 03/12/2008, 09:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Buscar una palabra en un array multidimensional

Hola:
Muchas gracias por su respuesta.

El array es este, aunque tiene más datos de los que pongo aqui:

Código PHP:
public $array=array( 
                                
0=>array(0=>"Título",1=>"Autor",2=>"Editorial"), 
                                
1=>array(0=>"El médico",1=>"Noah Gordon",2=>"Time Warner")); 
  #4 (permalink)  
Antiguo 03/12/2008, 10:04
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Buscar una palabra en un array multidimensional

mira este ejemplo.

Código:
$array=array( 
	0=>array(1=>"Título",2=>"Autor",3=>"Editorial"),
	1=>array(1=>"El médico",2=>"Noah Gordon",3=>"Time Warner")
);

$coinsidencias 		= array();
$palabra_a_buscar 	= $_POST['TxtBuscar'];
foreach($array as $key=>$value){
	$indice = array_search($palabra_a_buscar,$value);
	if($indice){
		$coinsidencias[]=$value[$indice];
	}
}
print_r($coinsidencias);
con esta funcion array_search puedes obtener todos los datos de la busqueda, ahi te pongo un ejemplo para que veas mas o menos como usarla, ojo a los indices de tus arrays, yo le puse 1 al primero para que devuelva true si encuentra la palabra en el primer elemento

Espero te ayude.

Saludos...
  #5 (permalink)  
Antiguo 03/12/2008, 10:06
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Buscar una palabra en un array multidimensional

Tambien revisa los comentarios de la funcion array_search, hay muy buenas funciones recursivas para buscar datos en un array multidimensional sin importar la profundidad de este.

http://cr.php.net/manual/es/function.array-search.php
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 18:54.