排序数组不起作用

时间:2013-11-23 18:59:10

标签: php arrays sorting

我正在尝试使用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...

任何想法如何对数组进行排序才能工作?

2 个答案:

答案 0 :(得分:3)

sort函数将对数组进行排序并返回一个表示其成功的布尔值。您不应将其返回值分配给数组。只使用:

sort($heading_fonts);

答案 1 :(得分:1)

学习使用documentation

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

请注意&参数前面的&符号($array)。 &符是reference operator

始终记下函数的返回值也很重要。关于SO的许多问题可以通过找出函数实际执行的内容以及返回的内容来解决。

Return Values
    Returns TRUE on success or FALSE on failure.

所以,这就是你对数组进行排序的方法:

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

如果您将返回值分配给$someArray,请执行以下操作:

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

...然后$someArray被sort()函数的返回值覆盖(在这种情况下为TRUE)。

文档的“示例”部分也很有启发性。