2

PHPのマニュアルで読んだuksortことがありますが、理解するのは非常に困難です。

誰かが私を助けることができますか?

次に例を示します。

 <?php  
 function my_sort($x, $y)  
 {  
   if ($x == $y) return 0;  
   return ($x > $y) ? -1 : 1;  
 }  
 $people = array(
   "10" => "javascript",  
   "20" => "php", "60" => "vbscript",  
   "40" => "jsp");  
 uksort($people, "my_sort");  
 print_r($people);  
 ?>

ここで何が起きてるの?

4

1 に答える 1

3

マニュアルに記載されているように、関数(my_sortこの場合)は次を返す必要があります。

  • より小さいと見なす場合は負の整数(この場合-1$a$b
  • $aより大きいと見なす場合は正の整数$b
  • 0あなたがそれらを同じであると考えるならば。

ご想像のとおりuksort、比較関数を使用して、要素が並べ替えられた配列にどの順序で含まれるべきかを確認します。2つのキーを使用して、関数を複数回呼び出します。それらを互いにキーと比較し、結果を返します。

たとえば、特定のキーを常に最初にしたい場合など、重要なことを実行する独自の比較関数をプログラムできるという考え方です。簡単な例では、代わりに通常のkrsortを使用できます。

于 2012-05-16T06:32:02.310 に答える