我正在尝试创建一个二维数组,从(大)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
),它仍然具有值,但不在其外。
有人知道我做错了吗?
答案 0 :(得分:1)
试试这个
$tmax = array(); //declare this outside the loop i.e before the loop starts
在switch case语句中,替换以下行
$tmax[$i] = $valor;
与
array_push($tmax,$valor);