- 论坛徽章:
- 1
|
好绕的需求。。。- function func($arr, $value, &$results, $k='')
- {
- $k .= array_shift($arr);
- if (count($arr)==1) {
- $results[$k.$arr[0]] += $value;
- } else {
- foreach ($arr as $val) {
- $results[$k.$val] += $value;
- }
- func($arr, $value, &$results, $k);
- }
- }
- $arr = array(
- 0 => array('key'=>array('a','b','c'),'value'=>100),
- 1 => array('key'=>array('a','b','d'),'value'=>50),
- 2 => array('key'=>array('b','d','e'),'value'=>30),
- 3 => array('key'=>array('a','c','d','e'),'value'=>10),
- );
- $results = array();
- foreach ($arr as $val) {
- foreach ($val['key'] as $key=>$value) {
- if (count($val['key'])==1) break;
- func($val['key'], $val['value'], &$results);
- unset($val['key'][$key]);
- }
- }
- print_r($results);exit;
复制代码 回复 1# lvteCorp |
|