2013-06-12 83 views
-1

我有一個二維數組如下如何對objective-c中的多維數組進行排序?

NSArray *cities = [NSArray arrayWithObjects:@"New Delhi",@"Karachi",@"Dhaka",@"Columbu", nil]; 
NSArray *distance = [NSArray arrayWithObjects:@"500",@"1400",@"1200",@"2800", nil]; 
NSMutableArray *details= [[NSMutableArray alloc]initWithCapacity:cities.count]; 
[details addObject:cities]; 
[details addObject:distance]; 

現在,details陣列看起來像

(
    (
    "New Delhi", 
    Karachi, 
    Dhaka, 
    Columbu 
), 
    (
    500, 
    1400, 
    1200, 
    2800 
) 
) 

我需要與升序WRT數組排序distance陣列 即

(
    (
    "New Delhi", 
    Dhaka, 
    Karachi, 
    Columbu 
), 
    (
    500, 
    1200, 
    1400, 
    2800 
) 
) 

如何做到這一點?

我還需要按字母順序排列整個數組w.r.t cities數組。

我試過使用sortUsingComparator但是,不能完全得到解決方案。

任何幫助,將不勝感激。

+0

http://stackoverflow.com/questions/13980513/objective-c-sort-two-dimensional-array –

+0

我已經給了一個[答案](http://stackoverflow.com/a/16710509/ 767730)到一個類似的問題,檢查出來。 – Anupdas

回答

1
self.arrayForRows = [[NSMutableArray alloc]init]; 
NSMutableArray *arrayForCities = [[NSMutableArray alloc]initWithObjects:@"Mumbai",@"Vizag",@"Hyderabad",@"Ahemdabad",@"Secunderabad", nil]; 
    NSMutableArray *arrayForDistance = [[NSMutableArray alloc]initWithObjects:@"200",@"320",@"32",@"450",@"14", nil]; 

    for (int i=0; i<arrayForCities.count; i++) 
    { 
     NSMutableDictionary *tempDicts = [[NSMutableDictionary alloc]init]; 
     [tempDicts setObject:[arrayForCities objectAtIndex:i] forKey:@"names"]; 
     [tempDicts setObject:[NSNumber numberWithInt:[[arrayForDistance objectAtIndex:i] intValue]] forKey:@"distance"]; 
     [self.arrayForRows addObject:tempDicts]; 
    } 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES]; 
    [self.arrayForRows sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 
+0

它工作正常,謝謝你 – NAZIK

+0

這是一個巧合,我們[答案](http://stackoverflow.com/a/16710509/767730)是非常相同的。 – Anupdas

+0

我將sortdescriptor或initwithkey更改爲名稱對象,它也按字母順序對數組進行排序。急需幫助,thx再次 – NAZIK

1

結構複雜。創建一個類city包含namedistance。然後添加這個類的對象。然後您可以使用city.distance進行排序。

+0

+1快速建議 – NAZIK

相關問題