1

以下の配列のキーをソートしたい。ksort() を使っていますが、使い方がわかりません。何か案が?

<?php
        $a = array(
                'kuy' => 'kuy',
                'apple' => 'apple',
                'thida' => 'thida',
                'vanna' => 'vanna',
                'ravy' => 'ravy'
              );

        $b = ksort($a);
        echo "<pre>";
        print_r($b);
        echo "</pre>";
4

9 に答える 9

4

ksort()配列自体をソートし、ソートされたコピーを作成しません

$a = array(
  'kuy'   => 'kuy',
  'apple' => 'apple',
  'thida' => 'thida',
  'vanna' => 'vanna',
  'ravy'  => 'ravy'
);

ksort($a);
echo "<pre>";
print_r($a);
echo "</pre>";
于 2011-06-27T11:44:38.273 に答える
2

$ aの元の順序を保持したくない場合は、:-を使用します。

ksort($a);
print_r($a);

$ aを保持したいが、ソートされたバージョンも必要な場合は、次を使用します。-

$b = $a;
ksort($b);
print_r($b);

私のコメントで述べたように、マニュアルページはそれを非常に明確にしています。 http://www.php.net/manual/en/function.ksort.php

于 2011-06-27T11:55:43.147 に答える
2

ksort は配列を返しません。元の配列をソートするだけで、bool を返します。「成功すると TRUE を返し、失敗すると FALSE を返します。」

したがって、ソートされた配列は $b ではなく $a です。ここでそれを参照してください: http://codepad.org/zMTFTPGf

于 2011-06-27T11:45:06.173 に答える
2

そこに答えがあります:http://php.net/manual/de/function.ksort.php

次のように使用します。

ksort($a);

次に $a がソートされます。

于 2011-06-27T11:45:52.630 に答える
1

ksortはブール値を返し、元の配列をソートするため、ksort の結果に応じて true または false である ksort によって返されるブール値ため$a代わりに印刷する必要が$b$b

ksort($a);    
print_r($a);
于 2011-06-27T11:44:34.503 に答える
1

ksortソートが成功したかどうかに関係なく、ブール値を返します。配列をその場でソートします-ソートされたコピーを返すのではなく、配列変数を変更します。

試す:

ksort($a);
print_r($a);
于 2011-06-27T11:44:50.050 に答える
1

ksort参照によって引数を受け取り、それを直接変更すると、戻り値は成功または失敗を示すだけです。

于 2011-06-27T11:45:12.897 に答える
0

ksort は、成功したかどうかについてブール値を返します。別の並べ替えられた配列は返しません。元の配列を変更します。

print_r($a);
于 2011-06-27T11:44:47.600 に答える
0

Felixが言ったように、ドキュメントを見てください。ここで例を見ることもできます

于 2011-06-27T11:45:52.380 に答える