PHP排序不起作用

时间:2015-10-06 15:16:17

标签: php sorting explode

我试图按字母顺序对字符串进行排序。我以为我可以将一个字符串分解成一个数组并对其进行排序,但是回声没有返回任何内容。

$schools = "high*low*other*";
$schools = explode("*", $schools);
$schools = sort($schools);
echo $schools[0];

3 个答案:

答案 0 :(得分:5)

sort()就地排序(即修改数组本身A.K.A. $schools变量为passed by reference),因此不返回任何数组。但是返回一个布尔值以确定排序是否成功。

  

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

$schools = "high*low*other*";
$schools = explode("*", $schools);
sort($schools);
echo $schools[0];

答案 1 :(得分:0)

您的问题可以通过以下代码示例解决:

<?php
   $schools = "c*d*a";
   $alpha_sorted_array = explode("*", $schools);
   sort($alpha_sorted_array);

   foreach($alpha_sorted_array as $itemToPrint){
     echo("Item: $itemToPrint\n");
   }

?>

基本上,你重新设置当你在学校里面的字符串变量上使用explode函数时会发生什么,如你所知,explode使用第一个分隔符,在这种情况下*在初始字符串$ schools中找到返回数组。从这一点开始,您可以在新数组上调用sort函数,它将返回一个已排序的数组(此数据不需要重新定义,只需在其上调用sort())

给定的输出是:

Item: a
Item: c
Item: d

答案 2 :(得分:0)

解决方案是natcasesort

此函数使用自然算法对值进行排序并且不区分大小写。