2015-10-06 89 views
0

我想按字母顺序排序一个字符串。我想我可以将一个字符串分解成一个数组并对其进行排序,但回声没有任何返回。PHP排序不工作

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

[** RTM **](http://php.net/manual/en/function.sort.php)sort()返回的结果 – Rizier123

+3

排序不会返回数组,它会修改数组http:// php.net/manual/en/function.sort.php只是'排序($学校);' – AbraCadaver

+0

看看我的答案,我给了一些洞察,当你调用一些函数时发生了什么,以及你可以修复你的方法码。我真的很喜欢帮助,让我知道它是否适合你。 –

回答

5

sort()各种代替(即修改数组本身又称为所述$schools变量是passed by reference)所以没有阵列被返回。然而,返回布尔值以确定排序是否成功。

布尔排序(阵列& $阵列[摘要$ sort_flags改变= SORT_REGULAR])

$schools = "high*low*other*"; 
$schools = explode("*", $schools); 
sort($schools); 
echo $schools[0]; 
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使用第一个分隔符,在这种情况下*在初始字符串$学校里面找到返回一个数组。从这一点就可以调用新的阵列上的排序功能,它会(上没有resasinging需要为这一个,只需要调用的sort())返回一个有序数组

给定输出是:

Item: a 
Item: c 
Item: d