从 pairwiseDifference 函数创建一个数组

Create an array from pairwiseDifference function

这是我的代码:

$arry = (10,20,30,40,50)
function pairwiseDifference($arry, $n) 
{ 
    $diff = 0; 
    for ($i = 0; $i < $n - 1; $i++) 
    { 
        
        // absolute difference between 
        // consecutive numbers 
        $diff = abs($arry[$i] - $arry[$i + 1]); 
        echo $diff." "; 
    } 
} 
 
// Driver Code  
$n = sizeof($arry);
echo "<br> Percent of commisions are: "; pairwiseDifference($arry,$n);  // this echo 10,10,10,10

所以现在我想把成对函数的结果做成一个数组以在另一个代码中使用,我试着把:

$arru   = pairwiseDifference($arry,$n)[1]; 
$arru1  = pairwiseDifference($arry,$n)[2]; 
$arru2  = pairwiseDifference($arry,$n)[3]; 
$arru3  = pairwiseDifference($arry,$n)[4]; 
echo $arru;
echo $arru1;
echo $arru2;
echo $arru3;

但是不工作。
我错了什么?
提前致谢!

PHP 中的数组声明需要包含 array 关键字,或者可以只用方括号 []:

声明
$arry = array(10,20,30,40,50);

$arry = [10,20,30,40,50];

您可以使用count()方法获取数组的大小,无需将其作为参数传递给您的函数:

function pairwiseDifference($arry) 
{ 
    $n = count($arry);
    // ...
}

你的函数没有 return 任何东西,所以变量 $arru$arru1、...不会从函数中得到任何东西,并且会保持 [=19] =].为了 return 一系列差异并解决您的问题,您可以这样做:

function pairwiseDifference($arry) 
{
    $n = count($arry) - 1;  // you can add the -1 here
    $diff = 0;
    $result = array();

    for ($i = 0; $i < $n; $i++) 
   { 
       // absolute difference between 
       // consecutive numbers 
       $diff = abs($arry[$i] - $arry[$i + 1]); 
       echo $diff." ";
       array_push($result, $diff);   // use array_push() to add new items to an array
   }

   return $result;  // return the result array
}

$arry = array(10,20,30,40,50);
echo "<br> Percent of commisions are: ";

// this echos 10,10,10,10 and assigns whatever your function returns 
// to the variable $diffArray
$diffArray = pairwiseDifference($arry);

$arru   = $diffArray[0];  // array elements start at index 0
$arru1  = $diffArray[1];
$arru2  = $diffArray[2];
$arru3  = $diffArray[3];

echo $arru;    // prints 10
echo $arru1;   // prints 10
echo $arru2;   // prints 10
echo $arru3;   // prints 10