2013-11-23 75 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

非常感谢给我很棒的知识。他们在文档中描述的有时很困难。再次感谢。 –