我试图按字母顺序对字符串进行排序。我以为我可以将一个字符串分解成一个数组并对其进行排序,但是回声没有返回任何内容。
$schools = "high*low*other*";
$schools = explode("*", $schools);
$schools = sort($schools);
echo $schools[0];
答案 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
此函数使用自然算法对值进行排序并且不区分大小写。