[code]Array ( 
[1]=>array(
[a]=>1
[b]=>10
)
[2]=>array(
[a]=>2
[b]=>30
)
[3]=>array(
[a]=>3
[b]=>30
)
[1,3]=>array(
[a]=>1,3
[b]=>30
)
) [/code]我想把它转化成
[code]Array ( 
[1]=>array(
[a]=>1
[b]=>40   //加上[1,3]中b的值10+30
)
[2]=>array(
[a]=>2
[b]=>30
)
[3]=>array(
[a]=>3
[b]=>60   //加上[1,3]中b的值10+30
)
)[/code]

解决方案 »

  1.   

    Array ( 
    [1]=>array(
    [a]=>1
    [b]=>10
    )
    [2]=>array(
    [a]=>2
    [b]=>30
    )
    [3]=>array(
    [a]=>3
    [b]=>30
    )
    [1,3]=>array(
    [a]=>1,3
    [b]=>30
    )
    )
    我想把它转化成
    Array ( 
    [1]=>array(
    [a]=>1
    [b]=>40   //加上[1,3]中b的值10+30
    )
    [2]=>array(
    [a]=>2
    [b]=>30
    )
    [3]=>array(
    [a]=>3
    [b]=>60   //加上[1,3]中b的值10+30
    )
    )
      

  2.   

    ar = Array (  
      1 => array( 'a' => 1, 'b' => 10 ),
      2 => array( 'a' => 2, 'b' => 30 ),
      3 => array( 'a' => 3, 'b' => 30 ),
      '1,3' => array( 'a' => '1,3', 'b' => 30 ),
    );
    foreach($ar as $k=>$v) {
      if(strstr($k, ',')) {
        foreach(explode(',', $k) as $i) $ar[$i]['b'] += $v['b'];
        unset( $ar[$k] );
      }
    }
    print_r($ar);
    Array
    (
        [1] => Array
            (
                [a] => 1
                [b] => 40
            )    [2] => Array
            (
                [a] => 2
                [b] => 30
            )    [3] => Array
            (
                [a] => 3
                [b] => 60
            ))