0

我正在尝试创建一个二维数组,从(大)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

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

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

4

1 回答 1

1

像这样试试

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

在 switch case 语句中,替换下面的行

$tmax[$i] = $valor;

array_push($tmax,$valor);
于 2012-05-02T06:25:28.610 回答