PHP排序不工作


PHP sort not working

我正在尝试按字母顺序排序字符串。我原以为可以将字符串分解成数组并对其排序,但是echo什么也没有返回。

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

sort()就地排序(即修改数组本身,也就是通过引用传递$schools变量),因此不返回数组。但是返回一个布尔值来确定排序是否成功。

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

$schools = "high*low*other*";
$schools = explode("*", $schools);
sort($schools);
echo $schools[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");
   }
?>

基本上,当你在学校内部的字符串变量上使用爆炸函数时会发生什么,如你所知,爆炸使用第一个分隔符,在这种情况下,在初始字符串$schools中找到*返回一个数组。此时,你可以对新数组调用sort函数,它将返回一个已排序的数组(此处不需要重新赋值,只需对其调用sort())

给出的输出是:

Item: a
Item: c
Item: d

解决方案是natcasesort

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