Solía ir a la escuela solo por un corto tiempo en programación. Hace un tiempo y estoy oxidado. He estado tratando de volver a aprender todo por mí mismo y algo me está molestando. Estoy tratando de imprimir un objeto específico desde una API externa, pero nada de lo que intento parece funcionar. Realmente no sé qué buscar en Google para obtener la respuesta correcta que estoy buscando. De todos modos aquí está mi código.

    <?php
    $url = 'http://apis.is/flight?language=en&type=departures';
    $json = file_get_contents($url);
    $results = json_decode($json, TRUE);
    for ($x = 0; $x < count($results); $x++) {
        echo $results[$x]['results']['flightNumber']."<br/>";
    }
    ?>
0
Hokus_Pokus 19 ene. 2018 a las 22:40

3 respuestas

La mejor respuesta

Si realiza una depuración (por cierto, aprenda qué es), verá que su $results tiene la tecla una : result , sobre el cual puede iterar con un simple foreach:

foreach ($results['result'] as $item) {
    echo $item['flightNumber'];
}
0
u_mulder 19 ene. 2018 a las 19:44

Está intentando acceder a los datos devueltos por la API en el orden incorrecto, haga esto en su lugar:

<?php
$url = 'http://apis.is/flight?language=en&type=departures';
$json = file_get_contents($url);
$results = json_decode($json, TRUE);
// To loop through an array, use foreach instead of for
// It is easier to use
foreach($results['results'] as $result){
    echo $result['flightNumber'].'<br />';
}
?>
0
Mehdi Bounya 19 ene. 2018 a las 19:45
<?php
$url = 'http://apis.is/flight?language=en&type=departures';
$json = file_get_contents($url);
$results = json_decode($json, TRUE);

foreach ($results['results'] as $res) {
     echo $res['flightNumber']."<br/>";
}
?>
-1
LuizFCFer 19 ene. 2018 a las 19:47
48348388