我在这里挠头。我是新手。我一直在强迫自己找到这个,而不是总是依靠你的帮助。但是我已经把手指放在这个上了。
我要做的是对从外部API(代码中的链接)获取的数组进行排序,并且我尝试整个列表的所有内容都会消失或不执行任何操作。我一遍又一遍地阅读this documentation,我似乎无法绕过它
我正在尝试将“ realArrival ”从低到高排序。
Anywho在这里是我的代码:
<?php
$url = 'http://apis.is/flight?language=en&type=arrivals';
$json = file_get_contents($url);
$results = json_decode($json, TRUE);
echo '<table class="highlight responsive-table purple darken-4">';
echo "<tr>";
echo '<th>Date</th>';
echo '<th>Flight Number</th>';
echo '<th>Airline</th>';
echo '<th>From</th>';
echo '<th>Schedule. Time</th>';
echo '<th>Status</th>';
echo "</tr>";
foreach ($results['results'] as $item => $val) {
echo "<tr>";
echo '<td>'.$item = $val['date'].'</td>';
echo '<td>'.$item = $val['flightNumber'].'</td>';
echo '<td>'.$item = $val['airline'].'</td>';
echo '<td>'.$item = $val['from'].'</td>';
echo '<td>'.$item = $val['plannedArrival'].'</td>';
echo '<td>'.$item = $val['realArrival'].'</td>';
echo '</tr>';
}
echo '</table>';
?>
提前致谢!
答案 0 :(得分:1)
我没有看到任何试图排序的代码......
也就是说,您可能想要使用usort()。您需要根据比较结果创建一个返回-1,0或1的适当函数,然后在调用usort()
时引用该函数。
答案 1 :(得分:0)
您需要先使用usort()对数组进行排序,然后将其打印在表格中: -
<?php
$url = 'http://apis.is/flight?language=en&type=arrivals';
$json = file_get_contents($url);
$results = json_decode($json, TRUE);
$results = $results['results'];
usort($results, 'compare_time');
function compare_time($a,$b){
$first_time = strtotime(substr($a['realArrival'], -4));
$second_time = strtotime(substr($b['realArrival'], -4));
return ($first_time < $second_time) ? 1: -1;
}
echo '<table class="highlight responsive-table purple darken-4">';
echo "<tr>";
echo '<th>Date</th>';
echo '<th>Flight Number</th>';
echo '<th>Airline</th>';
echo '<th>From</th>';
echo '<th>Schedule. Time</th>';
echo '<th>Status</th>';
echo "</tr>";
foreach ($results as $item => $val) {
echo "<tr>";
echo '<td>'.$val['date'].'</td>';
echo '<td>'.$val['flightNumber'].'</td>';
echo '<td>'.$val['airline'].'</td>';
echo '<td>'.$val['from'].'</td>';
echo '<td>'.$val['plannedArrival'].'</td>';
echo '<td>'.$val['realArrival'].'</td>';
echo '</tr>';
}
echo '</table>';
?>