2015-10-06 88 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