2013-11-23 113 views
0

我想按字母順序使用PHP排序函數對數組進行排序。排序數組不工作

Array ([0] => Open Sans [1] => Wellfleet [2] => Rambla [3] => Dosis [4] => Noto Sans [5] => Domine [6] => Signika Negative [7] => Arvo [8] => Neuton [9] => Rufina [10] => Tinos [11] => Podkova [12] => Magra [13] => Bitter [14] => Anton [15] => Libre Baskerville [16] => Tienne [17] => Roboto [18] => Ruda [19] => Merriweather [20] => Amaranth [21] => Playfair Display SC [22] => Cinzel Decorative [23] => Nobile [24] => Volkhov [25] => Nunito [26] => Merriweather Sans [27] => Stardos Stencil [28] => Bree Serif) 

我已經試過這一個

$heading_fonts = sort($heading_fonts); 

最後我結合陣列來獲得相同的密鑰和值。

$heading_fonts = array_combine($heading_fonts, $heading_fonts); 

但給我一個錯誤。

Warning: array_combine() expects parameter 1 to be array, boolean given in... 

任何想法如何排序數組的工作?

+0

'array_combine($ heading_fonts,$ heading_fonts);'這是一個數組與自身的結合。你在這條線上究竟想做什麼? – TecBrat

回答

3

sort函數將排序你的數組,並返回一個布爾值,指示它的成功。你不應該把它的返回值賦給數組。只需使用:

sort($heading_fonts); 
+0

奇妙..我不知道這一點,並試圖用變量返回值。只是想知道如何通過而不返回價值? –

+0

它改變給定的數組。它不會創建一個新的。順便說一句,不應該在最後使用[]調用數組嗎?或者我是否會將此與C#等同混淆? –

+1

@WesleyDeKeirsmaeker在PHP中這是不需要的 –

1

學習使用documentation:在前期的$array參數

bool sort (array &$array [, int $sort_flags = SORT_REGULAR ]) 

注意與號(&)。該符號是reference operator

總是注意函數的返回值也很重要。 SO中的許多問題都可以通過簡單地找出函數的實際功能以及它返回的結果來解決。

Return Values 
    Returns TRUE on success or FALSE on failure. 

所以,你這是怎麼數組排序:如果您在返回值賦給$someArray,這樣

$someArray = array(8,2,6,1,0); 
sort($someArray); 
// $someArray is now sorted 

$someArray = array(8,2,6,1,0); 
$someArray = sort($someArray); 

...然後$someArray被覆蓋由sort()函數的返回值(在這種情況下將爲TRUE)。

文檔中的「Examples」部分也很有啓發性。

+0

非常感謝給我很棒的知識。他們在文檔中描述的有時很困難。再次感謝。 –