2012-06-06 2 views
0

나는 다음과 같은 배열이 있습니다하여 인덱스를 잃지 않고 연관 배열을 정렬

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

그것은이다

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에 따라 같은이 시도 정렬 할을 sorted하지만 문제는 내 인덱스가 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 

어떻게 정렬 할 수 있습니까? 배열을 잃지 않고 배열? 도움이 될 것입니다.

답변

0

문제는 배열 키가 int입니다.
그들은 int이므로 연관 배열이 아닌 일반 배열로 사용됩니다.
패키지 [99767]을 실행하면 색인 99767의 요소가 표시됩니다.
배열을 정렬하면 색인이 0으로 시작됩니다.
변경해야하는 것은 키를 문자열로 변환하는 것입니다.

1

수 없습니다. Sort는 배열의 순서를 변경합니다. 가지고있는 옵션은 원하는 인덱스가 포함 된 배열 항목을 추가하는 것입니다.

+0

나는 정렬 변경을 알고, 나는 그다지 염려하지 않는다. 그러나 나는 인덱스를 바꾸고 싶지 않다. 이 경우 인덱스가 99767에서 0으로, 94854에서 1로 변경됩니다. 원래 인덱스 -> 99767 및 94854를 유지하기 만하면됩니다. – vincent

+0

선택 사항은 다음과 같습니다. 1-Sort and have 인덱스가 변경됩니다. 2 정렬하지 마십시오. 정렬이 필요한 경우, 내가 추천 할 수있는 유일한 것은 위에서 말한 것입니다. 어레이의 원래 위치를 식별 할 수있는 배열입니다. – Dom