-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 回答