0

たとえば、次の単語があります。

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

asort を使用して配列をアルファベット順にソートできることは知っていますが、それは望ましくありません。配列の要素を取得して並べ替えると、次のようになります。

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

ちょっとソートされた=ええと

こんにちは、ソート済み = えーろ

間違ったソート = gnorw

私の知る限り、関数 sort は配列に対してのみ機能するため、sort を使用して単語をソートしようとすると、エラーが発生します。私が仮定しなければならなかった場合、おそらく foreach を strlen および for ステートメントまたは同様のものと一緒に使用する必要がありますが、よくわかりません。

前もって感謝します!

4

3 に答える 3

1
$myArray = array("eyh", "lhleo", "nrwgo");
array_walk(
     $myArray,
     function (&$value) {
         $value = str_split($value);
         sort($value);
         $value = implode($value);
     }
);
print_r($myArray);
于 2013-07-23T06:58:28.130 に答える
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 )
于 2013-07-23T07:01:20.417 に答える
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);
于 2013-07-23T07:02:38.823 に答える