在實現(xiàn)冒泡排序前,已從數(shù)據(jù)庫獲得兩個不同欄目下的同類數(shù)據(jù)。
數(shù)據(jù)結(jié)構(gòu)如下:
Array
(
??? [0] => Array
??????? (
??????????? [id] => 7
??????????? [cid] => 309
??????????? [tit] => 欄目一
??????????? [listorder] => 7
??????????? [uname] => root
??????????? [inputtime] => 1478243515
??????????? [updatetime] => 1479890692
??????? )
??? [1] => Array
??????? (
??????????? [id] => 10
??????????? [cid] => 309
??????????? [tit] => 欄目一
??????????? [listorder] => 10
??????????? [uname] => root
??????????? [inputtime] => 1478243720
??????????? [updatetime] => 1479890681
? ? ? ? )
??? [2] => Array
??????? (
??????????? [id] => 8
??????????? [cid] => 309
??????????? [tit] => 欄目一
??????????? [listorder] => 8
??????????? [uname] => root
??????????? [inputtime] => 1478243614
??????????? [updatetime] => 1479718032
? ? ? ? )
)
Array
(
??? [0] => Array
??????? (
??????????? [id] => 11
??????????? [cid] => 315
??????????? [tit] => 欄目二
??????????? [listorder] => 0
??????????? [uname] => root
??????????? [inputtime] => 1479880613
??????????? [updatetime] => 1479970287
??????? )
)
因為是兩個不同欄目,所以結(jié)果為兩個的數(shù)組
因此在冒泡之前,我們首先要將兩個數(shù)組放到同一個數(shù)組中。在得到這兩個結(jié)果前定義一個$arr=array();來存放這兩個數(shù)組。通過遍歷結(jié)果集,將兩個數(shù)組寫入$arr中,最終獲得一個二維數(shù)組:
Array
??? (
??????? [0] => Array
??????????? (
??????????????? [id] => 7
??????????????? [cid] => 309
??????????????? [tit] => 欄目一
??????????????? [listorder] => 7
??????????????? [uname] => root
??????????????? [inputtime] => 1478243515
??????????????? [updatetime] => 1479890692
??????????? )
??????? [1] => Array
??????????? (
??????????????? [id] => 10
??????????????? [cid] => 309
??????????????? [tit] => 欄目一
??????????????? [listorder] => 10
??????????????? [uname] => root
??????????????? [inputtime] => 1478243720
??????????????? [updatetime] => 1479890681
??????????? )
??????? [2] => Array
??????????? (
??????????????? [id] => 8
??????????????? [cid] => 309
??????????????? [tit] => 欄目一
??????????????? [listorder] => 8
??????????????? [uname] => root
??????????????? [inputtime] => 1478243614
??????????????? [updatetime] => 1479718032
??????????? )
??????? [3] => Array
??????????? (
??????????????? [id] => 11
??????????????? [cid] => 315
??????????????? [tit] => 欄目二
??????????????? [listorder] => 0
??????????????? [uname] => root
??????????????? [inputtime] => 1479880613
??????????????? [updatetime] => 1479970287
??????????? )
??? )
接下來的冒泡就和平常一樣
$n=count($arr);
for($j=0;$j<$n-1;$j++){
??? for($i=0;$i<$n-$j-1;$i++){
??????? //按照更新時間排序
??????? if($arr[$i]['updatetime']<$arr[$i+1]['updatetime']){
??????????? $aa = $arr[$i+1];
??????????? $arr[$i+1] = $arr[$i];
??????????? $arr[$i] = $aa;
??????? }
??? }
}
最終結(jié)果,無論是那個欄目中的內(nèi)容更新,前臺顯示時會從所有欄目中按照更新時間進(jìn)行排序,沒有欄目限制。
這個問題類似于之前的替換,也是通過外層的索引數(shù)組來對內(nèi)部的關(guān)聯(lián)數(shù)組進(jìn)行操作。
以上僅為個人觀點,歡迎補充!