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

2番目のシートは次のとおりです。

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

?>

2番目のシートには、検索関数から$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 に答える