Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: lucheano en 3 Octubre 2015, 06:48 am



Título: [Resuelto] Obtener un valor de un array json con una variable
Publicado por: lucheano en 3 Octubre 2015, 06:48 am
Tengo un archivo json llamado actividades.json que es mas o menos asi:

Código
  1. {"success":true,
  2. "data":[
  3. {"idActividad":289993,"descripcionActividad":"carpintero"},
  4. {"idActividad":289999,"descripcionActividad":"medico"},
  5. {"idActividad":465210,"descripcionActividad":"escribano"},
  6. {"idActividad":173020,"descripcionActividad":"maestro"},
  7. {"idActividad":522112,"descripcionActividad":"abogado"}]}
  8.  

Entonces lo que hago es crear un array con el contenido del json:
Código
  1. $arrayActividades = @json_decode(file_get_contents("https://xxx.com/actividades.json"));
  2. $numeroActividad = '173020';
  3.  

Necesito generar un codigo php para obtener la descripcion que le corresponde a la variable $numeroActividad }
Muchas gracias




Título: Re: Obtener un valor de un array json con una variable
Publicado por: #!drvy en 3 Octubre 2015, 11:35 am
Tal y como lo tienes,

Código
  1. foreach($arrayActividades->data as $actividad){
  2.    if($actividad->idActividad == $numeroActividad){
  3.        echo $numeroActividad, ' realiza: ', $actividad->descripcionActividad;
  4.        break;
  5.    }
  6. }

Si pudieras organizar el JSON te vendría mucho mejor que la idActividad fuese el index de data, así la búsqueda es mas sencilla y no tienes que recorrer todo el data.

Saludos


Título: Re: Obtener un valor de un array json con una variable
Publicado por: lucheano en 3 Octubre 2015, 23:14 pm
Tal y como lo tienes,

Código
  1. foreach($arrayActividades->data as $actividad){
  2.    if($actividad->idActividad == $numeroActividad){
  3.        echo $numeroActividad, ' realiza: ', $actividad->descripcionActividad;
  4.        break;
  5.    }
  6. }

Si pudieras organizar el JSON te vendría mucho mejor que la idActividad fuese el index de data, así la búsqueda es mas sencilla y no tienes que recorrer todo el data.

Saludos

Funcionó perfecto. Mil gracias