0

(大きな) met ファイルから特定の値を読み取って、2 次元配列を作成しようとしています。配列が空で、その理由がわかりません。次の配列があります。

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

私は2つのループを持っています:

最初は

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

対応するファイルや変数などを読み込んでみたら正常に動きました。

次に、他のループがあります

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

$valorで必要な値を取得して、完全に機能します

満たされた変数に従って、値を別の配列に格納したいときに問題が発生します。

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 に答える