函数返回空数组

时间:2013-02-20 08:59:04

标签: php arrays function

我正在尝试将分母变量传递给函数convert。当我这样做时,返回的数组“$ new_arr”为每个值产生“0”。

我尝试用函数中的数字替换变量$ denominator,新数组返回适当的数字。

我对PHP的经验是新手所以我的问题是:

1)这是一个范围问题吗?我认为通过在函数之外声明这些变量,它们本质上是全局的。

2)我是否还需要传递'$ denominator'作为参数?

提前致谢。这是代码。

$highest_val = max($array_1);
$lowest_val  = min($array_2);
$denominator = $highest_val - $lowest_val;

function convert($arr)
{

$new_arr=array();

for($i=0, $count = count($arr); $i<$count; $i++)
{
$numerator  = $arr[$i]-$lowest_val;     
$calc   = $numerator/$denominator;
$new_arr[] .= $calc;    
}
$arr = $new_arr;
return $arr;        
}

 $test_arr = convert($open_array);
 var_dump($test_arr);

2 个答案:

答案 0 :(得分:2)

要在函数中使用全局变量,您还需要在其中定义它们global。喜欢这个

$highest_val = max($array_1);
$lowest_val  = min($array_2);
$denominator = $highest_val - $lowest_val;
function convert($arr)
{
global $highest_val;
global $lowest_val ;
global $denominator;

或者您可以将这三个值作为参数发送到您的函数中。如果遵循全局范围路径

,也可以使用$ GLOBALS数组

答案 1 :(得分:0)

是的,您需要将值作为参数传入函数。

function convert($arr, $highest_val, $lowest_val, $denominator) { ... }

$test_arr = convert($open_array, $highest_val, $lowest_val, $denominator);
var_dump($test_arr);