3

私は古い仕事のいくつかを調べていて、非常に異なった長い道のりを試みましたが、asort関数が必要な用途のいくつかで完全に機能することを確認しました。

だから私の質問は正確に、ソート時にasortはどのように関連付けを維持するのですか?配列はキーまたは値で並べ替えることができると思いましたが、3番目の並べ替えピボットはありますか?

4

2 に答える 2

1

「3番目のピボット」は、メモリ/アレイ内の実際の場所です。
次の2つの配列でforeachを実行すると、はっきりとわかります。これらは同じですが、順序が異なります。

$x1=array('mmm'=>'mmm','bbb'=>'bbb','ccc'=>'ccc');
$x2=array('ccc'=>'ccc','bbb'=>'bbb','mmm'=>'mmm');

foreach($x1 as $k=>$v) echo "{$k} {$v}";
foreach($x2 as $k=>$v) echo "{$k} {$v}";

これらの2つのアレイでデフォルトのソートを実行すると、次の両方の場合になります。

$x1=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');
$x2=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');
于 2011-02-28T01:11:47.887 に答える
1

マニュアルから

asort — 配列をソートし、インデックスの関連付けを維持します

たとえば、次のようになります。

  • Asortインデックス=>値の関連付けを維持しながら、値で昇順にソートするだけです。
  • Arsortは同じですが、desc 方法です。

マニュアルは、ここで配列の並べ替え機能についてかなり明確です。

基本機能はキーまたは値でのみソートしますが、オプションがあります:

  • インデックス -> 値の関連付けが維持されるかどうか
  • ソートするかどうかのカスタム関数の使用
  • 昇順または降順
  • 大文字と小文字を区別するかどうか
于 2011-02-28T10:25:21.840 に答える