我需要帮助将此代码转换为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代码不起作用。请帮帮我。
答案 0 :(得分: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;
添加到返回计算值的函数中。
答案 1 :(得分: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;