求高效算法,合并多个多维数组值
程序员文章站
2022-06-06 16:58:16
...
例如
$a = array(
array(
'province'=>'ss',
'package' => array(
array(
'FX58'=>0,
'PName' => 'a'
),
),
'storeName'=> 'test',
),
array(
'province'=>'cc',
'package' => array(
array(
'FX58'=>1,
'PName' => 'b'
),
),
'storeName'=> 'test2',
)
);
$b = array(
array(
'province'=>'ss',
'package' => array(
array(
'FX58'=>1,
'PName' => 'a'
),
),
'storeName'=> 'test',
),
array(
'province'=>'cc',
'package' => array(
array(
'FX58'=>2,
'PName' => 'b'
),
),
'storeName'=> 'test2',
)
);
将b数组值统计到a数组中
$a = array(
array(
'province'=>'ss',
'package' => array(
array(
'FX58'=>0,
'PName' => 'a'
),
),
'storeName'=> 'test',
),
array(
'province'=>'cc',
'package' => array(
array(
'FX58'=>1,
'PName' => 'b'
),
),
'storeName'=> 'test2',
)
);
$b = array(
array(
'province'=>'ss',
'package' => array(
array(
'FX58'=>1,
'PName' => 'a'
),
),
'storeName'=> 'test',
),
array(
'province'=>'cc',
'package' => array(
array(
'FX58'=>2,
'PName' => 'b'
),
),
'storeName'=> 'test2',
)
);
将b数组值统计到a数组中
回复讨论(解决方案)
这样?
$new=array_merge($a,$b);echo "";print_r($new);echo "";
分组键是哪个?
这样?
$new=array_merge($a,$b);echo "额 我需要的是将相同province,storeName,,pName中FX158数据统计起来";print_r($new);echo "";
分组键是哪个?
将相同province,storeName,,pName中FX158数据统计起来
$a = array( array( 'province'=>'ss', 'package' => array( array( 'FX58'=>0, 'PName' => 'a' ), ), 'storeName'=> 'test', ), array( 'province'=>'cc', 'package' => array( array( 'FX58'=>1, 'PName' => 'b' ), ), 'storeName'=> 'test2', ));$b = array( array( 'province'=>'ss', 'package' => array( array( 'FX58'=>1, 'PName' => 'a' ), ), 'storeName'=> 'test', ), array( 'province'=>'cc', 'package' => array( array( 'FX58'=>2, 'PName' => 'b' ), ), 'storeName'=> 'test2', ));foreach($a as $v) { foreach($v['package'] as $t) { $res[$v['province']][$v['storeName']][$t['PName']] = $t['FX58']; }}foreach($b as &$v) { foreach($v['package'] as $t) { $res[$v['province']][$v['storeName']][$t['PName']] += $t['FX58']; }}foreach($a as &$v) { foreach($v['package'] as &$t) { $t['FX58'] = $res[$v['province']][$v['storeName']][$t['PName']]; }}print_r($a);
Array( [0] => Array ( [province] => ss [package] => Array ( [0] => Array ( [FX58] => 1 [PName] => a ) ) [storeName] => test ) [1] => Array ( [province] => cc [package] => Array ( [0] => Array ( [FX58] => 3 [PName] => b ) ) [storeName] => test2 ))
$a = array( array( 'province'=>'ss', 'package' => array( array( 'FX58'=>0, 'PName' => 'a' ), ), 'storeName'=> 'test', ), array( 'province'=>'cc', 'package' => array( array( 'FX58'=>1, 'PName' => 'b' ), ), 'storeName'=> 'test2', ));$b = array( array( 'province'=>'ss', 'package' => array( array( 'FX58'=>1, 'PName' => 'a' ), ), 'storeName'=> 'test', ), array( 'province'=>'cc', 'package' => array( array( 'FX58'=>2, 'PName' => 'b' ), ), 'storeName'=> 'test2', ));foreach($b as $k=>$v){ for($i=0,$len=count($a); $i';print_r($a);echo '';
Array( [0] => Array ( [province] => ss [package] => Array ( [0] => Array ( [FX58] => 1 [PName] => a ) ) [storeName] => test ) [1] => Array ( [province] => cc [package] => Array ( [0] => Array ( [FX58] => 3 [PName] => b ) ) [storeName] => test2 ))
上一篇: Lucene 索引数据库
下一篇: 方便面热量会让人们产生长胖的后果吗?