我有一组关联数组,其NSDictionary* attribs = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSFileImmutable];
[[NSFileManager defaultManager] setAttributes: attribs ofItemAtPath:@"/path/to/file" error:nil];
(这是assoc数组的一个键)如下所示:
names
现在我有另一个更大的数组{'Red', 'Blue', 'Green'}
作为键之一。像
names
根据这个,我想更新较小的(第一个)数组
较大数组的{'id'=>'23fe54','names'=>'Red','value'=>'3'},{'id'=>'90ks21','names'=>'Red','value'=>'4'},{'id'=>'44cb12','names'=>'Blue','value'=>'1'};
键告诉我们需要更新较小数组的哪个关联数组。
我想将names
添加到较小数组的一个字段中。
问题是如何使用条件选择较短的数组:这两个字段是否匹配。我如何确保只更新一个?
编辑:预期输出:
{'names'=>'Red','value'=>'7'},{'names'=>'Blue','value'=>'1'};
答案 0 :(得分:0)
我会这样做:
<?php
$names = array('Red', 'Blue', 'Green');
$values = array(
array('id'=>'23fe54','names'=>'Red','value'=>'3'),
array('id'=>'90ks21','names'=>'Red','value'=>'4'),
array('id'=>'44cb12','names'=>'Blue','value'=>'1')
);
// prepare the result array
$results = array();
foreach($names as $name) {
$results[$name] = array('names' => $name, 'value' => 0);
}
// compute values
foreach($values as $value) {
$results[$value['names']]['value'] += $value['value'];
}
// keep only values
$results = array_values($results);
// print "jsonified" result
echo(json_encode($results));
?>