我有這種數組array(5) { [0]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(29) " <p>Jotain mukavaa.</p> " [3]=> int(12) [4]=> int(1270929600) } [1]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(51) " <p>Saapumiser? II/09 astuu palvelukseen</p> " [3]=> int(11) [4]=> int(1270929600) } ...}我需要做的是基于數組的[x] [4](Unix時間戳值)對數組進行排序。我將如何實現?
3 回答

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
使用比較函數,在這種情況下,它將比較數組的unix時間戳值:
function compare($x, $y) {
if ( $x[4] == $y[4] )
return 0;
else if ( $x[4] < $y[4] )
return -1;
else
return 1;
}
然后使用如下usort函數調用它:
usort($nameOfArray, 'compare');
該函數將使用用戶提供的比較函數按其值對數組進行排序。如果您希望排序的數組需要按照一些非平凡的條件進行排序,則應使用此函數。
取自PHP:usort手冊。

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
我最初的想法是:將每個嵌套數組包裝在一個對象(類的實例)中,以便一旦按特定字段排序(在本例中為unix時間戳),則可以使用相同的字段輕松訪問其他信息對象參考。
因此,嵌套的數組數組可能會成為對象數組,每個對象都有一個“ sort”方法。
添加回答
舉報
0/150
提交
取消