PHP:按升序排序 table NOT 数据库 table/schema
PHP: Order a table by ascending order NOT database table/schema
我正在尝试订购在 HTML 和 PHP 中编写和创建的 table,为此我使用了一个循环来为我提供我需要的信息来自 XML 文档。
例如,我可以从 XML 得到的是:
- 2:10 罗姆福德
- 1:50 克雷福德
- 6:30 凯西克
- 4:25 里士满
这些值都来自同一个 XML 文档,我不能(由于客户的请求)存储信息并从数据库模式中拉回信息。我正在这样构建 table:
<?php
$xml = simple_xml_load_file("xmlfeed");
$item = $xml->items;
?>
<table>
<tbody>
<?php
foreach ($item as $key => $value) { echo "<tr><td>" . $value . "</td></tr>"; }
?>
</tbody>
</table>
但是我需要能够让它们根据开头的时间升序排列,我该怎么做呢?
看看这个。我想您的代码可能有所不同,但它满足了需要...
$xml = simplexml_load_file('http://cachepricefeeds.williamhill.com/openbet_cdn?action=template&template=getHierarchyByMarketType&classId=3&marketSort=--&filterBIR=N');
$array = json_decode(json_encode((array)$xml), true); //convert to array
$list = [];
foreach ($array['response']['williamhill']['class']['type'] as $type => $typeData) {
$typeId = $typeData['@attributes']['id'];
$list[$typeId] = [
'attributes' => $typeData['@attributes'],
'market' => [],
];
foreach ($typeData['market'] as $game) {
$list[$typeId]['market'][] = $game;
}
usort($list[$typeId]['market'], function ($a, $b) {
$aTime = strtotime($a['@attributes']['date'].' '. $a['@attributes']['time']);
$bTime = strtotime($b['@attributes']['date'].' '. $b['@attributes']['time']);
if ($aTime == $bTime) return 0;
return ($aTime > $bTime) ? 1 : -1;
});
}
我正在尝试订购在 HTML 和 PHP 中编写和创建的 table,为此我使用了一个循环来为我提供我需要的信息来自 XML 文档。 例如,我可以从 XML 得到的是:
- 2:10 罗姆福德
- 1:50 克雷福德
- 6:30 凯西克
- 4:25 里士满
这些值都来自同一个 XML 文档,我不能(由于客户的请求)存储信息并从数据库模式中拉回信息。我正在这样构建 table:
<?php
$xml = simple_xml_load_file("xmlfeed");
$item = $xml->items;
?>
<table>
<tbody>
<?php
foreach ($item as $key => $value) { echo "<tr><td>" . $value . "</td></tr>"; }
?>
</tbody>
</table>
但是我需要能够让它们根据开头的时间升序排列,我该怎么做呢?
看看这个。我想您的代码可能有所不同,但它满足了需要...
$xml = simplexml_load_file('http://cachepricefeeds.williamhill.com/openbet_cdn?action=template&template=getHierarchyByMarketType&classId=3&marketSort=--&filterBIR=N');
$array = json_decode(json_encode((array)$xml), true); //convert to array
$list = [];
foreach ($array['response']['williamhill']['class']['type'] as $type => $typeData) {
$typeId = $typeData['@attributes']['id'];
$list[$typeId] = [
'attributes' => $typeData['@attributes'],
'market' => [],
];
foreach ($typeData['market'] as $game) {
$list[$typeId]['market'][] = $game;
}
usort($list[$typeId]['market'], function ($a, $b) {
$aTime = strtotime($a['@attributes']['date'].' '. $a['@attributes']['time']);
$bTime = strtotime($b['@attributes']['date'].' '. $b['@attributes']['time']);
if ($aTime == $bTime) return 0;
return ($aTime > $bTime) ? 1 : -1;
});
}