0

我正在尝试将数组从一张表上的函数传递到另一张 php 表上的新数组中。

这是我所拥有的:

功能是:

//the arr.php file

<?php

function search($var){
$var;

$a=array();
$a[0]=$var+1;
$a[1]=$var+2;
$a[2]=$var+3;
$a[3]=$var+4;
return $a;
}
?>

第二张表是:

<?php

include ('arr.php');
$n=4;

for($i=0;$i<$n;$i++)
{

$temp=search(3); 

$thearrayfromarr[$i]=$temp;//doesn't work
print_r($thearrayfromarr[$i]);//doesn't work
}

?>

我希望第二张表有一个数组变量,我可以回显它将从搜索函数中输出 $a 数组数据。

所以,例如,当我输入

echo thearrayfromarr[0]; // It will have the value of $a[0] echo'd to me
4

4 回答 4

3

您的功能没有return任何作用:

function search($var) {
    $a=array();
    $a[0]=$var+1;
    $a[1]=$var+2;
    $a[2]=$var+3;
    $a[3]=$var+4;
    return $a; // Need this
}
于 2012-05-03T18:13:54.460 回答
0

你的search()函数没有返回$a。这是一个有效的清理版本:

<?php
//the arr.php file

function search($var){
    $a = array();

    for($n=1; $n<=4; $n++) {
        $a[] = $var + $n;
    }

    return $a;
}
?>
于 2012-05-03T18:15:45.347 回答
0

您可以简单地从函数中返回此数组:

return $a;

如果您已经返回其他内容,则应声明$a为参考参数:

function search($var, &$a) {
  $a[0]=$var+1;
  $a[1]=$var+2;
  $a[2]=$var+3;
  $a[3]=$var+4;
  return "something";
}

$a = array();
$temp = search(3, $a);
// $a now has new value
于 2012-05-03T18:15:52.923 回答
0

您在函数内部定义的数组无法从外部访问。您需要返回数组才能使用它。

返回数组

function search($var){
$var;

$a=array();
$a[0]=$var+1;
$a[1]=$var+2;
$a[2]=$var+3;
$a[3]=$var+4;
return $a;
}

然后你像这样使用它:

include ('arr.php');
$n=4;

for($i=0;$i<$n;$i++)
{

$temp=search(3); 

$thearrayfromarr[$i] = $temp;
print_r($thearrayfromarr[$i]);
}

在这种情况下,如果你这样做:$thearrayfromarr[0]应该有 [1,2,3,4] 因为你返回的是一个数组,而不是一个值。这一点尤其重要,因为您希望根据这一行得到其他东西:

echo thearrayfromarr[0]; // It will have the value of $a[0] echo'd to me

回答问题

如何使 $thearrayfromarr 具有 search(3) 的值?

你不需要 for 循环,你可以这样做:

include ('arr.php');

$thearrayfromarr = search(3); 
print_r($thearrayfromarr); //should return [4,5,6,7]
于 2012-05-03T18:17:20.323 回答