0

私は次のような配列を持っています:

array(
    'a'=>array(
        'a'=>3,
        'f'=>5,
        'sdf'=>0),
    't'=>array(
        'a'=>1,
        'f'=>2,
        'sdf'=>5),
    'pps'=>array(
        'a'=>1,
        'f'=>2,
        'sdf'=>3)
);

各最上位配列のサブ配列がどのように同じであるかに注意してください。必要に応じて、サブ配列を組み合わせて、次のような 1 次元配列を残す最も簡単な方法は何ですか?

array(
    'a'=>5,
    'f'=>9,
    'sdf'=>8
);
4

3 に答える 3

0

ネストされた 2 つの foreach と、実際に新しい配列を作成するのはどうですか?

$input = array(
    'a'=>array(
        'a'=>3,
        'f'=>5,
        'sdf'=>0),
    't'=>array(
        'a'=>1,
        'f'=>2,
        'sdf'=>5),
    'pps'=>array(
        'a'=>1,
        'f'=>2,
        'sdf'=>3)
);

$output = array();
foreach ($input as $v) {
    foreach ($v as $k2 => $v2) {
        if (!isset ($output[$k2])
            $output[$k2] = 0;
        $output[$k2] += $v2;
    }
}

/* Now $output = array(
       'a'=>5,
       'f'=>9,
       'sdf'=>8
   ); */
于 2013-06-24T21:51:12.733 に答える