无法在分配循环之外检索 PHP 数组


Cant retrieve PHP arrays outside the assigning loop

我正在尝试创建一个二维数组,从(大)met文件中读取特定值。数组是空的,我不知道为什么。我有以下数组:

$varmet = array('tasmax', 'tasmin', 'pr', 'clt');

我有两个循环:

首先是

for ($j = 0; $j <= 3; $j++)  {
...

我读取了相应的文件和变量等。它工作正常。

然后我有另一个循环

for ($i = 1; $i <= 360; $i++) {
....
$valor = $valor * $correctp;

它工作得很好,在$valor中检索所需的值

当我想根据 met 变量将值存储在不同的数组中时,会出现问题:

switch ($j) {
case 0: 
   $tmax[$i] = $valor;
break;
case 1: 
   $tmin[$i] = $valor;
break;
case 2: 
   $prec[] = $valor;
break;
case 3: 
   $clt[$i] = $valor;
break; } // Fin del switch
    }  // Fin del for para un fichero met
} // Fin del for para todas las varmet

$tmax$tmin等没有价值,尽管$valor确实有。此外,如果我在循环中分配数组(即 $valorest[$j][$i] = $valor )它仍然具有值,但不在其之外。

有人知道我做错了什么吗?

像这样尝试

$tmax = array(); //declare this outside the loop i.e before the loop starts

在开关大小写语句中,替换以下行

$tmax[$i] = $valor;

array_push($tmax,$valor);