目前,我使用PDO從MySQL數據庫提取數據。在頁面中的一個點,我再次有使用PHP對現有數組進行排序
<?php
$sitelinks=$pdo->query("SELECT * FROM sitelinks WHERE `show` = 'yes' ORDER BY `Order` ASC")
->fetchAll();
foreach ($sitelinks as $sitelink) {
echo "\n<li class=\"linkitem\"><a href=\"{$sitelink['URL']}\">{$links['Text']}</a></li>";
}
?>
再後來就在頁我用$sitelink
值,就像這樣:
<?php
foreach ($sitelinks as $sitelink) {
echo '\n<li class=\"desktoplinkitem\">
<a href=\"{$sitelink['URL']}\">{$sitelink['Text']}</a>
</li>";
}
?>
在第一個塊,我發現了$sitelink
元素按正確順序排列(因爲它們正在按照Order
列中的值在MySQL查詢中進行排序)
我想要做的是對第二個塊進行排序,然後按同樣的Order
列排序。從看PHP手冊我猜array_multisort
可能是最好的,但我有點困惑,正確的語法。我試過如下:
<?php
foreach ($sitelinks as $sitelink) {
array_multisort($sitelink[`Order`], SORT_ASC);
echo "\n<li class=\"desktoplinkitem\">
<a href=\"{$sitelink['URL']}\">{$sitelink['Text']}</a></li>";
}
?>
編輯:道歉,我完全糊塗了我自己這裏 - 訂單IS NOT變化,它的處理的正確方法。我的困惑來自於這樣一個事實,即我在第二個塊中將li
元素與float: right
一起浮動,這使得鏈接反向顯示。
我實際上想要做的是按照Order
降序排列第二個塊,以便第二個塊讀取1,2,3,4,5而不是現在的5,4,3,2,1。
你的意思是你的數組在第一次foreach循環後發生了變化......是這樣嗎? – Ali
當然,你想在你的'foreach'循環中對___進行排序 –
我認爲你可以使用第二塊的php sort()函數。 – naf4me