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

时间:2012-05-02 06:13:52

标签: php

我正在尝试创建一个二维数组,从(大)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),它仍然具有值,但不在其外。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

试试这个

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

在switch case语句中,替换以下行

$tmax[$i] = $valor;

array_push($tmax,$valor);