0

私は以下のような配列を持っています

Array (
        [0]=> Array
                (
                   [employee_num]  =>1009
                   [employee_name] =>Jane Doe
                   [amount]        =>4500.00
                )
        [1]=> Array
                (
                   [employee_num]  =>1009
                   [employee_name] =>Jane Doe
                   [amount]        =>2500.00
                )
        [2]=> Array
                (
                   [employee_num]  =>1033
                   [employee_name] =>Test User
                   [amount]        =>3455.50
                )
        [3]=> Array
                (
                   [employee_num]  =>1009
                   [employee_name] =>Jane Doe
                   [amount]        =>5500.00
                )
        [4]=> Array
                (
                   [employee_num]  =>1033
                   [employee_name] =>Test User
                   [amount]        =>7500.00
                )
     )

取得したいのは次のような配列です:(各ユーザーごとに1つのエントリとその金額の値の合計。)for-eachを使用する必要があることはわかっていますが、[employee_num]のエントリをマージする方法を本当に理解できません。および[employee_name]。配列内の類似したエントリの数やそれらのインデックスは事前にわかりません。

Array (
        [0]=> Array
                (
                   [employee_num]  =>1009
                   [employee_name] =>Jane Doe
                   [amount]        =>12500.00
                )
        [1]=> Array
                (
                   [employee_num]  =>1033
                   [employee_name] =>Test User
                   [amount]        =>10955.50
                )
      )

これどうやってするの?誰か助けてもらえますか?ありがとう。

4

2 に答える 2

1
function sumAmount($data)
{
    $rst=array();
    foreach($data as $info)
    {
        if(!isset($rst[$info["employee_num"]]))
            $rst[$info["employee_num"]]=$info;
        else
            $rst[$info["employee_num"]]["amount"]+=$info["amount"];
    }
    return array_values($rst);
}
于 2012-09-04T05:11:54.057 に答える
0

$arrayが元の配列であると仮定します。

$outputArray = array();
foreach ($array as $employeeArray) {
    $outputArray[$employeeArray['employee_name']]['employee_num'] = $employeeArray['employee_num'];
    $outputArray[$employeeArray['employee_name']]['employee_name'] = $employeeArray['employee_name'];
    $outputArray[$employeeArray['employee_name']]['amount'] += $employeeArray['amount'];
}
print_r($outputArray);

のキーは$outputArray従業員の名前になります。employee_numで照合する場合は、の$outputArray[$employeeArray['employee_num']]代わりに使用して$outputArray[$employeeArray['employee_name']]ください。

于 2012-09-04T05:11:32.933 に答える