Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/02/2016, 12:06
orcajavi
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Relacionar dos archivos json con php

Disculpa, no quería molestar

Bueno, el archivo sala.json:
Código PHP:
{ 
  
"result" : "ok", 
  
"response" : { 
    
"state" : "Running", 
    
"name" : "CampeonatosRACE.es", 
    
"joinable" : false, 
    
"max_member_count" : 30, 
    
"now" : 1453996775, 
    
"attributes" : { 
      
"MaxPlayers" : 30, 
      
"Race1Length" : 19, 
      
"SessionState" : "Race",
      
"SessionTimeElapsed" : 0,
      
"SessionTimeDuration" : 0,
      
"TrackId" : -368740158, 
      
"VehicleClassId" : 1646832695, 
      
"VehicleModelId" : -1041674971 
      
} 
    } 
} 

El archivo circuitos.json:
Código PHP:
{ 
  
"result" : "ok", 
  
"response" : { 
    
"description" : "All known track ids", 
    
"list" : [ 
      { 
        
"id" : 328972919, 
        
"name" : "Cadwell Club Circuit", 
        
"gridsize" : 20 
      
}, 
      { 
        
"id" : 354022214, 
        
"name" : "Donington Park GP", 
        
"gridsize" : 38 
      
}, 
      { 
        
"id" : -368740158, 
        
"name" : "Autodromo Nazionale Monza Short", 
        
"gridsize" : 40 
      
}, 
      { 
        
"id" : 521933422, 
        
"name" : "Circuit de Barcelona-Catalunya GP", 
        
"gridsize" : 36 
      
} 
      ] 
   } 
} 
Y el código con las 3 líneas que me indicaste en tu mensaje:
Código PHP:
<?php 
$html_sala 
= file_get_contents('sala.json');

$json_sala = json_decode($html_sala); 


$html_circuito = file_get_contents('circuitos.json');

$json_circuito = json_decode($html_circuito); 

    
$sala = $json_sala->response->name; 
    
$estado_sala = $json_sala->response->state; 
    
$maximo_participantes = $json_sala->response->max_member_count; 
     
    
$id_circuito = $json_sala->response->attributes->TrackId; 
    
$estado_sesion = $json_sala->response->attributes->SessionState; 
    
$duracion_sesion = $json_sala->response->attributes->SessionTimeDuration; 
    
$tiempo_sesion_transcurrido = $json_sala->response->attributes->SessionTimeElapsed; 

    
$nombre_circuito = $json_circuito->response->list[0]->name; 
    
$id_circuito2 = $json_circuito->response->list[0]->id; 

var_dump(array_filter(function($x) use ($id_circuito) {
  return 
$x->id == $id_circuito;
}, 
$response->list));
    
    echo 
'<br>';
    echo 
$nombre_circuito; 
    echo 
$sala.'<br>'; 
    echo 
$estado_sala.'<br>'; 
    echo 
$id_circuito.'<br>'; 
    echo 
$id_circuito2.'<br>'; 
    echo 
$nombre_circuito.'<br>'; 
    echo 
'Estado de la sesión: '.$estado_sesion.'<br>'; 
    echo 
'Duración de la sesión: '.$duracion_sesion.'<br>'; 
    echo 
'Tiempo transcurrido: '.$tiempo_sesion_transcurrido.'<br>';
?>
con este código, en el echo $id_circuito2 y el echo $nombre_circuito, me aparecen el id y nombre del primer array porque entiendo que le pongo list[0] en la variable y que lo que tenemos que conseguir es que ese [0] sea sustituido por el número en el que realmente se encuentra el nombre del circuito que quiero. Eso es lo que entiendo que tenemos que conseguir y lo que creo que me estás dando a entender