2013-01-16 34 views
2

我已經在stackoverflow上看到了百萬個類似的問題,但是我沒有發現它們可以處理對對象的實際索引值進行排序。按其索引對stdClass對象進行排序

我有一個標準的對象,我給了一個值($ vid)來排序,而不是增量自己填充它。

foreach ($array_videos as $v) { 
      $govideo = $this->staff_model->get_video($v->vid); 
      $goforit[$v->vid] = $vimeo->call('vimeo.videos.getInfo', array('video_id' => $govideo->video_id)); 
} 

當我爲此,我收到以下輸出:

[33] => stdClass Object ... 
[12] => stdClass Object ... 
[55] => stdClass Object ... 
[61] => stdClass Object ... 

我想由對象索引,ASC或DESC此陣列的對象進行排序。例如:

[61] => stdClass Object ... 
[55] => stdClass Object ... 
[33] => stdClass Object ... 
[12] => stdClass Object ... 

我試過ksort和一些各種usort函數。似乎無法繞過這個包圍我的頭。

任何幫助,將不勝感激。

+0

你有什麼問題,用'ksort'? – Jim

回答

4

ksort()將這樣的伎倆:

ksort($array_videos); 

ksort將在ASC數組鍵排序。你可以使用array_reverse()迅速扭轉順序:

$array_videos = array_reverse($array_videos); 

你現實世界的例子,你可以做以下之一:

foreach (ksort($array_videos) as $v) 

foreach (array_reverse(ksort($array_videos)) as $v) 

更好的! 通過Jim扭轉排序,以DESC按照建議,你可以使用krsort()

ksort($array_videos); //ASC 
krsort($array_videos); //DESC 
+1

有一個[krsort()](http://php.net/manual/en/function.krsort.php)按鍵倒序排序。 – Jim

+1

好的呼叫。你會認爲他們只會有一個可選的反轉標誌而不是使用sort()標誌。 –

+0

這工作,謝謝你們。 – markbratanov

相關問題