//想要得到的效果:最后是一个总数组,含有两个数组,每个数组含有两个字典,两个字典中的price相同
NSMutableArray *myMutableArr
=
[[NSMutableArray alloc] init];
NSDictionary *dic1
=
[NSDictionary dictionaryWithObjectsAndKeys:@"1",@"price",@"2",@"number", nil];
NSDictionary *dic2
=
[NSDictionary dictionaryWithObjectsAndKeys:@"3",@"price",@"5",@"number", nil];
NSDictionary *dic3
=
[NSDictionary dictionaryWithObjectsAndKeys:@"3",@"price",@"1",@"number", nil];
NSDictionary *dic4
=
[NSDictionary dictionaryWithObjectsAndKeys:@"1",@"price",@"3",@"number", nil];
[myMutableArr addObject:dic1];
[myMutableArr addObject:dic2];
[myMutableArr addObject:dic3];
[myMutableArr addObject:dic4];
NSLog(@"myMutableArr
=
%@",myMutableArr);
//剔选出price不同的值,并组成数组
//本例中price等于1和3,arr
=
(1,3)
NSNumber *
number;
NSMutableArray *
priceArray=
[[NSMutableArray alloc]init];
for (int i
= 0;
i<[myMutableArr count];
i++)
{
number =
[[myMutableArr objectAtIndex:i] valueForKey:@"price"];
[priceArray addObject:number];
}
NSSet *set =
[NSSet setWithArray:priceArray];
NSLog(@"priceArray
=
%@",[set allObjects]);
NSInteger cout
=
[[set allObjects] count];
//根据arr数值的不同 得到price相同的分组
NSMutableArray *lastArray
=
[[NSMutableArray alloc]init];//初始化最终的Array
for (int i
= 0; i<cout; i++)
{
__block NSMutableArray *
tempArray =
[NSMutableArray arrayWithCapacity:0];
[myMutableArr enumerateObjectsUsingBlock:^(NSDictionary *
dic, NSUInteger idx, BOOL *stop)
{
NSString *
name =
[dic valueForKey:@"price"];
NSRange range
=
[name rangeOfString:[NSString stringWithFormat:@"%@",[[set allObjects] objectAtIndex:i]]];
if (range.length != 0)
{
[tempArray addObject:dic];
}
}];
NSLog(@"tempArray
=
%@",tempArray);
//把得到的分组数组 合并成最终数组
[lastArray addObject:tempArray];
}
NSLog(@"最终的Array
= %@",lastArray);
原文:http://www.cnblogs.com/tanwen1989/p/3598923.html