Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]

{"success":true,
"data":[
{"idActividad":289993,"descripcionActividad":"carpintero"},
{"idActividad":289999,"descripcionActividad":"medico"},
{"idActividad":465210,"descripcionActividad":"escribano"},
{"idActividad":173020,"descripcionActividad":"maestro"},
{"idActividad":522112,"descripcionActividad":"abogado"}]}


Entonces lo que hago es crear un array con el contenido del json:
Código (php) [Seleccionar]

$arrayActividades = @json_decode(file_get_contents("https://xxx.com/actividades.json"));
$numeroActividad = '173020';


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 (php) [Seleccionar]
foreach($arrayActividades->data as $actividad){
   if($actividad->idActividad == $numeroActividad){
       echo $numeroActividad, ' realiza: ', $actividad->descripcionActividad;
       break;
   }
}


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
Cita de: #!drvy en  3 Octubre 2015, 11:35 AM
Tal y como lo tienes,

Código (php) [Seleccionar]
foreach($arrayActividades->data as $actividad){
   if($actividad->idActividad == $numeroActividad){
       echo $numeroActividad, ' realiza: ', $actividad->descripcionActividad;
       break;
   }
}


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