PHP数组从函数传递到新工作表上的数组

PHP数组从函数传递到新工作表上的数组,php,Php,我试图将一个数组从一个工作表上的函数传递到另一个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; } ?> 您的函数没有返回任何内容: function search($var) { $a=array(

我试图将一个数组从一个工作表上的函数传递到另一个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;
}
?>

您的函数没有返回任何内容:

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
}

您的函数没有返回任何内容:

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;
}
?>

您的
搜索()
函数没有返回
$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

您只需从函数返回此数组:

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]);
}
回答问题

如何使$TheArrayFromar具有搜索(3)的值

您不需要for循环,只需执行以下操作:

include ('arr.php');

$thearrayfromarr = search(3); 
print_r($thearrayfromarr); //should return [4,5,6,7]

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

返回数组

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]);
}
回答问题

如何使$TheArrayFromar具有搜索(3)的值

您不需要for循环,只需执行以下操作:

include ('arr.php');

$thearrayfromarr = search(3); 
print_r($thearrayfromarr); //should return [4,5,6,7]


$thearrayfromarr在哪里定义?@RiverC:在这里定义:
$thearrayfromarr[$i]=$temp第一次迭代定义它,下一次迭代添加它。好的,尽管在$thearrayfromarr=array()这样的地方显式定义它要好得多。。。考虑到这两个文件,我们不知道第二个文件是否包含在某个文件中,因此$TheArrayFromar的来源是模糊的。另外,for循环的作用域有问题。@RiverC:我同意,但是当你在一个数组中循环时,你知道它肯定会有值(0-4),如果你小心的话,这是可以的。当您正在构建的阵列已经定义并且最终添加到其中时,真正的问题就会出现。这绝对是一种糟糕的风格。$TheArrayFromar在哪里定义?@RiverC:在这里定义:
$TheArrayFromar[$i]=$temp第一次迭代定义它,下一次迭代添加它。好的,尽管在$thearrayfromarr=array()这样的地方显式定义它要好得多。。。考虑到这两个文件,我们不知道第二个文件是否包含在某个文件中,因此$TheArrayFromar的来源是模糊的。另外,for循环的作用域有问题。@RiverC:我同意,但是当你在一个数组中循环时,你知道它肯定会有值(0-4),如果你小心的话,这是可以的。当您正在构建的阵列已经定义并且最终添加到其中时,真正的问题就会出现。这绝对是一种糟糕的风格。清理后的版本将是
返回范围($var+1,$var+4)非常正确@Alexey。然而,我认为简单的循环说明了OP的实际情况。我修复了返回部分,它现在可以工作了,但我正在尝试使新工作表中的ArrayFromarr具有调用函数搜索的值(3)您尚未定义
$thearrayfromarr
。在
for
循环之外,添加
$thearrayfromarr=array()清理版本将是
返回范围($var+1,$var+4)非常正确@Alexey。然而,我认为简单的循环说明了OP的实际情况。我修复了返回部分,它现在可以工作了,但我正在尝试使新工作表中的ArrayFromarr具有调用函数搜索的值(3)您尚未定义
$thearrayfromarr
。在
for
循环之外,添加
$thearrayfromarr=array()我修复了返回$a部分,但是如何通过搜索(3)使$TheArrayFromar具有[4,5,6,7]的值?我修复了返回$a部分,但是如何通过搜索(3)使$TheArrayFromar具有[4,5,6,7]的值?如果我有更多的时间,我会尝试找出你的代码实际上在做什么,并提供一个替代方案。我假设这只是为了提问而编写的伪代码/示例代码,而不是您真正的代码?一个名为
search
的函数似乎不适合这项工作……如果我有更多的时间,我会尝试找出你的代码实际上在做什么,并提供一个替代方案。我假设这只是为了提问而编写的伪代码/示例代码,而不是您真正的代码?一个名为
search
的函数似乎不适合它应该做的任何事情。。。