2013-07-23 45 views
0

例如,我們有以下的話裏:哎,你好,錯你怎麼能每個元素數組排序按字母順序

$unsorted = array("eyh", "lhleo", "nrwgo"); 

我知道,我可以用ASORT到數組按字母順序排序,但我不我不想那樣。 我想借此數組的元素和排序的,所以它會成爲這樣的:

$sorted = array("ehy", "ehllo", "gnorw"); // each word in the array sorted 

哎分類= EHY

你好分類= ehllo

錯誤分類= gnorw

據我所知,函數sort只適用於數組,所以如果你嘗試使用sort排序一個單詞,它會產生一個錯誤。如果我不得不假設,我可能需要用strlen和for語句或類似的東西來使用foreach,但我不確定。

在此先感謝!

+0

使用'str_split'創建一個數組,那種然後'implode'再次創建一個字符串。 –

+0

我認爲它已經在這裏找到答案 http://stackoverflow.com/questions/9912469/php-how-to-sort-the-characters-in-a-string –

+0

只是想知道,這是你的功課? –

回答

1
$myArray = array("eyh", "lhleo", "nrwgo"); 
array_walk(
    $myArray, 
    function (&$value) { 
     $value = str_split($value); 
     sort($value); 
     $value = implode($value); 
    } 
); 
print_r($myArray); 
+0

對於那些抱怨封閉不能在PHP 5.2中工作的人,升級! PHP 5.2現在已經很老了,不再支持;甚至PHP 5.3也不再被支持。 PHP 5.5.1是最新版本,PHP 5.2在其生命週期結束之前正式推出2年 –

1
function sort_each($arr) { 
    foreach ($arr as &$string) { 
     $stringParts = str_split($string); 
     sort($stringParts); 
     $string = implode('', $stringParts); 
    } 
    return $arr; 
} 

$unsorted = array("eyh", "lhleo", "nrwgo"); 
$sorted = sort_each($unsorted); 
print_r($sorted); // returns Array ([0] => ehy [1] => ehllo [2] => gnorw) 
0

試試這個

$unsorted = array("eyh", "lhleo", "nrwgo"); 
$sorted = array(); 
foreach ($unsorted as $value) { 
$stringParts = str_split($value); 
sort($stringParts); 
$sortedString = implode('', $stringParts); 
array_push($sorted, $sortedString); 
} 
print_r($sorted);