2009-04-03 10 views
0

どのようにインデックス付き配列をソートし、Actionscript 3.0でインデックスの関連付けを維持しますか? Array.sort();メソッドは何があっても配列を再インデックスするようです。基本的には、私はarsort PHPスクリプト関数を再作成する必要があります。可能?arsort with Actionscript 3

答えて

3

はそうあなたが連想配列が必要になります行うには(すなわちObject)インデックスが整数であるとき、あなたは気づいているかもしれませんとフラッシュが自動的にNに0からそれらを並べ替えてしまうため(これはあなたのケースで非常に迷惑することができ、その理由がある)。

キーの値を追跡したい場合は、ハックは、配列内の各項目の値のインデックスを格納することです:

var array:Object = new Array(); 

array.push({index:0,name:"Tom"}); 
array.push({index:1,name:"Andrew"}); 
array.push({index:2,name:"Mark"}); 

array.sortOn("name"); 

for each(var item:Object in array) 
    trace(item.index, item.name); 

これはトレースします。

1 Andrew 
2 Mark 
0 Tom 

をnb値がArrayの代わりにVectorに入力されている場合は、これを改善できます。

+0

パーフェクト。ありがとう! – typeoneerror