-2

このコードを PHP に変換するのに助けが必要です。

var formula = [10,6.7,3.4];  
var user1 = [1,0,2,1,1,0,2,2,2,2];  
var user2 = [2,1,2,0,1,2,2,2,0,0];  
var result = 0;  
calculate();  
function calculate(){  
    for(var i=0; i<user1.length; i++){  
        result +=formula[Math.abs(user1[i]-user2[i])]  
    }
}  
alert(result);

PHP コード:

<?php     
$formula = array(10,6.7,3.4);  
$user1 = array(1,0,2,1,1,0,2,2,2,2);  
$user2 = array(2,1,2,0,1,2,2,2,0,0);  
$result = 0;  
function calculate(){  
    for($i=0, $size = count($user1); $i<$size; $i++){  
        $result += $formula(abs($user1[$i]-$user2[$i]));  
    }
}
calculate();  
echo $result;  
?>

PHP コードが機能しません。お願い助けて。

4

2 に答える 2

6

変数$user1, $user2, $formulaはスコープ内にありません-それらを関数に渡します:

function calculate( $user1, $user2, $formula) {  
    $result = 0;
    for( $i = 0, $size = count($user1); $i<$size; $i++){  
        $result += $formula[ abs( $user1[$i]-$user2[$i]) ]; 
    }
    return $result;
}  
$result = calculate( $user1, $user2, $formula);  
echo $result;

また、$formula配列のインデックスが欠落しているので、上に追加しました。

        $result += $formula[ abs( $user1[$i]-$user2[$i]) ];

return $result;最後に、計算値を返す関数を追加しました。

于 2013-01-15T15:57:43.510 に答える
1

変数を渡して結果を返す必要があります。

$formula = array(10,6.7,3.4);  
$user1 = array(1,0,2,1,1,0,2,2,2,2);  
$user2 = array(2,1,2,0,1,2,2,2,0,0);  

function calculate($user1, $user2, $formula){  
    for($i=0, $size = count($user1); $i<$size; $i++){  
        $result += $formula[abs($user1[$i]-$user2[$i])];  
    }
    return $result;
}  
$result = calculate($user1, $user2, $formula);  
echo $result;  
于 2013-01-15T15:59:52.253 に答える