0

次の配列があります。

packages    Array (@24ff99c1)   
                [99767] Array (@24ff9809)   
                    forceUpload false   
                    length  0   
                    name    "testdocument.indd" 
                    packageId   "99767" 
                    progressStatus  "allowed"   
                    singleItemSize  50582294 [0x303d316]    
                    singleItemUploadedSoFar 17296352 [0x107ebe0]    
                    sortIndex   1338984578952 [0x137c1b33f88]   
                    status  "upload busy"   
                    totalSize   431203849 [0x19b3a609]  
                    uploadedAtm "37015918"  
                    uploadedSoFar   "19719566"  
                [94854] Array (@24ff7fd9)   
                    forceUpload false   
                    length  0   
                    name    "testdocument.indd" 
                    packageId   "16842" 
                    progressStatus  "allowed"   
                    singleItemSize  6344704 [0x60d000]  
                    singleItemUploadedSoFar 6344704 [0x60d000]  
                    sortIndex   1338984606428 [0x137c1b3aadc]   
                    status  "upload busy"   
                    totalSize   862407698 [0x33674c12]  
                    uploadedAtm "6344704"   
                    uploadedSoFar   ""  
                length  2   

今、私はそれをsortIndex.Iに従って並べ替えたいと思っています。

packageData.data.packages.sortOn("sortIndex");

ソートされていますが、問題は、次のようにインデックスが 0、1、2、... に変更されることです。

packages    Array (@24ff99c1)   
                [0] Array (@24ff9809)   
                    forceUpload false   
                    length  0   
                    name    "testdocument.indd" 
                    packageId   "99767" 
                    progressStatus  "allowed"   
                    singleItemSize  50582294 [0x303d316]    
                    singleItemUploadedSoFar 17296352 [0x107ebe0]    
                    sortIndex   1338984578952 [0x137c1b33f88]   
                    status  "upload busy"   
                    totalSize   431203849 [0x19b3a609]  
                    uploadedAtm "37015918"  
                    uploadedSoFar   "19719566"  
                [1] Array (@24ff7fd9)   
                    forceUpload false   
                    length  0   
                    name    "testdocument.indd" 
                    packageId   "16842" 
                    progressStatus  "allowed"   
                    singleItemSize  6344704 [0x60d000]  
                    singleItemUploadedSoFar 6344704 [0x60d000]  
                    sortIndex   1338984606428 [0x137c1b3aadc]   
                    status  "upload busy"   
                    totalSize   862407698 [0x33674c12]  
                    uploadedAtm "6344704"   
                    uploadedSoFar   ""  
                length  2

インデックスを失うことなく配列をソートするにはどうすればよいですか? どんな助けでも大歓迎です。

4

2 に答える 2

0

ここでの問題は、配列キーが int であることです。
それらは int であるため、連想配列ではなく、通常の配列として機能します。
packages[99767] を実行すると、インデックス 99767 の要素が表示されます
。配列をソートすると、インデックスは 0 から始まります
。変更する必要があるのは、キーを文字列に変換することです。

于 2012-06-07T02:18:04.937 に答える