Foros del Web » Programando para Internet » PHP »

Buscar un texto en un array bidimensional

Estas en el tema de Buscar un texto en un array bidimensional en el foro de PHP en Foros del Web. Hola a tod@s Tengo un array bidimensional y estoy tratando de buscar un texto en el array utilizando la función array_search, pero no lo consigo, ...
  #1 (permalink)  
Antiguo 17/03/2019, 16:32
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Buscar un texto en un array bidimensional

Hola a tod@s
Tengo un array bidimensional y estoy tratando de buscar un texto en el array utilizando la función array_search, pero no lo consigo, estoy empezando mi aprendizaje en php, asi que mis conocimientos son bastante básicos.
Código PHP:
Ver original
  1. $academia = array
  2.     (
  3.     array("Juan","Fisica","Contabilidad"),
  4.     array("Antonio","Informatica","Contabilidad"),
  5.     array("Luis","Fisica","Matematicas","Lengua")
  6.     );
  7.  
  8.  foreach($academia as $alumnos)
  9.     {
  10.     echo "Alumnos: ";
  11.     foreach($alumnos as $valor)
  12.         {
  13.            
  14.         echo $valor ." ";
  15.         }
  16.     echo "<br>";
  17.     }
  18. $buscar = "Antonio";
  19. $resultBuscar = array_search($buscar, $academia);
  20.  
  21. if ($resultBuscar ) {
  22.     echo 'Se ha encontrado el término "'.$buscar.'" en la posición '.$resultBuscar ;
  23. } else {
  24.     echo 'El término "'.$buscar.'" no se ha encontrado en el array.';
  25. }
Lo que pretendo es que me busque al alumno Antonio y cuando lo encuentre me muestre las materias que estudia: Informatica, Contabilidad, pero no lo encuentra y no consigo averiguar por que
  #2 (permalink)  
Antiguo 17/03/2019, 17:11
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Buscar un texto en un array bidimensional

El problema es porque la función esta buscando en el primer nivel, necesitas recorrer el arreglo y buscar el elemento que quieres. eso lo puedes hacer de forma secilla con array_filter

Código PHP:
Ver original
  1. $academia = array(
  2.         array("Juan","Fisica","Contabilidad"),
  3.         array("Antonio","Informatica","Contabilidad"),
  4.         array("Luis","Fisica","Matematicas","Lengua")
  5.     );
  6.  
  7.  
  8. $buscar = "antonio";
  9.  
  10. $result = array_filter($academia, function($item) use($buscar){
  11.     return strcasecmp($buscar,$item[0]) == 0;
  12. });
  13.  
  14. print_r($result);

Eso si, recuerda que este es el caso mas sencillo tendrias que contemplar otras cosas para hacer busquedas mas complejas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Última edición por hhs; 17/03/2019 a las 20:17
  #3 (permalink)  
Antiguo 18/03/2019, 11:04
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Buscar un texto en un array bidimensional

Estoy aprendiendo, asi que de momento son búsquedas sencillas lo que busco, una vez que tengo los resultados de la búsqueda y me creo una tabla para mostrar dichos resultados, como tendría que hacer para separar dichos resultados y meter por ejemplo la asignatura de Matemáticas en una celda, Contabilidad en otra, etc., es que no me aclaro muy bien con el array_filter
  #4 (permalink)  
Antiguo 18/03/2019, 18:01
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Buscar un texto en un array bidimensional

Si pones un ejemplo de lo que quieres hacer seria bueno, porque no entiendo que es lo que quieres hacer
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 19/03/2019, 13:50
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Buscar un texto en un array bidimensional

Lo que quiero es crear una tabla con un diseño y según ese diseño, meter los resultados le la búsqueda, seria algo así, aunque todavía no tengo decidido el diseño definitivo
Código PHP:
Ver original
  1. echo "<table>
  2.  <tr>
  3.    <td>Antonio</td><td>&nbsp;</td>
  4.  </tr>
  5.  <tr>
  6.    <td>Informatica</td><td>Contabilidad</td>
  7.  </tr>
  8. </table>";
  #6 (permalink)  
Antiguo 19/03/2019, 21:59
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Buscar un texto en un array bidimensional

Bueno este es el punto donde te toca experimentar y hacer pruebas

Suerte!
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 21/03/2019, 04:45
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Buscar un texto en un array bidimensional

Ya estoy haciendo pruebas, pero no me sale, necesito alguna pista, un pequeño empujoncito

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 12:50.