0

本当に簡単な質問がありますが、何らかの理由で出力が欲しいものではありません。私は2つの配列を持っています:

total_hours = array(10, 20, 30);
hourly_rate = array(15, 10, 15);

だから私が解決したいのは、対応する要素をtotal_hours( hourly_rateeg element 1: 10*15 = 150) で乗算し、これをtotal_sum(total_sum has been initialized) という配列に入れる方法です。これは私がこれまでに行ったことです:

$total_sum = 0;
for($i=0; $i < sizeof($hourly_rate); $i++) {
    for($a=0; $a < sizeof($total_hours); $a++) {
        $total_sum = ($hourly_rate[$i]*$total_hours[$a]); 
    } 
    $total_pay[] = $total_sum;    
}  

現時点では0になり、その理由がわかりません。

どうもありがとう!

4

4 に答える 4

1

匿名関数で array_map を使用して、時間をレートで乗算できます。array_map は、指定された配列を繰り返し処理し、結果を配列として返します。詳細については、 http://php.net/manual/en/function.array-map.phpを参照してください。

$total_hours = array(10, 20, 30);
$hourly_rate = array(15, 10, 15);    

$total_pay = array_map(function($hour, $rate) {
    return $hour * $rate;
}, $total_hours, $hourly_rate);
于 2013-03-10T17:37:49.470 に答える
0

以下はAarolama Bluenk によるこの回答に基づいており、両方の配列が同じサイズである限り機能するはずです。

for($i = 0; $i < count($total_hours); $i++) {
    $result[] = $total_hours[$i] * $hourly_rate[$i];
}
于 2013-03-10T17:37:34.913 に答える
0
$total_hours = array(10, 20, 30);
$hourly_rate = array(15, 10, 15);

$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($total_hours));
$mi->attachIterator(new ArrayIterator($hourly_rate));

$total_pay = array();
foreach($mi as $details) {
    $total_pay[] = $details[0] * $details[1];
}
于 2013-03-10T17:37:55.457 に答える
0

ループを 2 つにするのではなく、1 つだけにする必要があります。

$total_pay = array();
for($i=0; $i < count($hourly_rate); $i++) {
  $total_pay[] = $hourly_rate[$i]*$total_hours[$i]; 
}

最終的な配列の合計を取得するには、 を使用しますarray_sum

于 2013-03-10T17:24:37.030 に答える