我正在尝试将一个数组从一个工作表上的函数传递到另一个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
您的函数没有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
}
您的search()
函数没有返回$a
。这是一个有效的清理版本:
<?php
//the arr.php file
function search($var){
$a = array();
for($n=1; $n<=4; $n++) {
$a[] = $var + $n;
}
return $a;
}
?>
你可以简单地从函数中返回这个数组:
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
您在函数内部定义的数组无法从外部访问。您需要返回数组才能使用它。
返回数组
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具有搜索(3)的价值?
你不需要 for 循环,你可以做:
include ('arr.php');
$thearrayfromarr = search(3);
print_r($thearrayfromarr); //should return [4,5,6,7]