मेरे पास कई JSON API URL हैं जिनसे मैं डेटा खींचने का प्रयास कर रहा हूं। वे सभी एक ही संरचित हैं लेकिन विभिन्न स्थानों के डेटा के साथ हैं। मैं प्रत्येक फ़ाइल प्राप्त करने और एक तालिका में उनसे डेटा प्रतिध्वनित करने का प्रयास कर रहा हूं। जब मैं प्रत्येक फ़ाइल से अलग से डेटा खींचता हूं और प्रत्येक टीआर के लिए कोड दोहराता हूं, तो मैं इसे काम पर लाने में कामयाब रहा हूं, लेकिन मैं इसे लूप करने का प्रयास कर रहा हूं जैसे कि यह डेटा की पंक्तियों को एक MySQL से खींच रहा है डेटाबेस, इसलिए यह तालिका की एक अलग पंक्ति में प्रत्येक स्थान के डेटा को सामने के छोर पर दिखाएगा।

JSON फ़ाइल संरचना


 {
      "Altimeter": "3005",      
      "Flight-Rules": "VFR", 
      "Raw-Report": "KJFK 241851Z 19009KT 10SM CLR 31/18 A3005 RMK AO2 SLP174 T03060183", 
      "Station": "KJFK", 
      "Visibility": "10", 
      "Wind-Direction": "190", 
      "Wind-Gust": "", 
      "Wind-Speed": "09", 
  }

मैं इसे नीचे दिए गए कोड के माध्यम से एक ही स्टेशन के लिए काम करने में कामयाब रहा:

<?
$json = file_get_contents('Station_1_URL');
$decoded = json_decode($json, true);
?>

<table>
    <tbody>
        <tr>
            <td><? echo $decoded['Station']; ?></td>
            <td><? echo $decoded['Flight-Rules']; ?></td>
            <td><? echo $decoded['Wind-Direction']; ?> @ <? echo $decoded['Wind-Speed']; ?></td>
            <td><? echo $decoded['Altimeter']; ?></td>
        </tr>
    </tbody>
</table>

मैं चाहता हूं कि यह दो स्टेशनों से डेटा एकत्र करे और नीचे की तरह आउटपुट करे

<table>
        <tbody>
            <tr> <!-- This is data from the first station -->
                <td><? echo $decoded['Station']; ?></td>
                <td><? echo $decoded['Flight-Rules']; ?></td>
                <td><? echo $decoded['Wind-Direction']; ?> @ <? echo $decoded['Wind-Speed']; ?></td>
                <td><? echo $decoded['Altimeter']; ?></td>
            </tr>

            <tr> <!-- This is data from the next station -->
                <td><? echo $decoded['Station']; ?></td>
                <td><? echo $decoded['Flight-Rules']; ?></td>
                <td><? echo $decoded['Wind-Direction']; ?> @ <? echo $decoded['Wind-Speed']; ?></td>
                <td><? echo $decoded['Altimeter']; ?></td>
            </tr>
        </tbody>
    </table>
0
A. Long 24 सितंबर 2017, 23:25

2 जवाब

सबसे बढ़िया उत्तर

foreach लूप में फ़्रंटएंड को ट्रैवर्स करने और रैप करने के लिए आवश्यक सभी स्टेशन URL की एक सूची बनाएं:

<?php
$station_urls = ['Station_1_URL', 'Station_2_URL', 'Station_3_URL'];
?>
<table>
    <tbody>
    <? foreach ($station_urls as $station_url) :
        $json = file_get_contents($station_url);
        $decoded = json_decode($json, true);
    ?>
    <tr>
        <td><? echo $decoded['Station']; ?></td>
        <td><? echo $decoded['Flight-Rules']; ?></td>
        <td><? echo $decoded['Wind-Direction']; ?> @ <? echo $decoded['Wind-Speed']; ?></td>
        <td><? echo $decoded['Altimeter']; ?></td>
    </tr>
    <? endforeach; ?>
    </tbody>
</table>
0
krlv 24 सितंबर 2017, 23:41

अपने स्टेशन URL को एक सरणी में रखें

<?php
  $stationURLs = array(Station_1_URL, Station_2_URL, ...);
  foreach ($stationURLs as $stationURL) {
    // fetch the JSON response
    // print the <tr>
    // (same as your chunk of code for station1)
  }
?>
0
MrByte11 24 सितंबर 2017, 23:42