我正在尝试按字母顺序排序字符串。我原以为可以将字符串分解成数组并对其排序,但是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
该函数使用自然算法对值进行排序,不区分大小写。