2011-02-02 15 views
1

動的名前付き配列をループし、結果を前の位置結果と比較します。php - 動的変数名を前にチェック

if($s>1 && $s<=10) 
     { 
      if(${"strat{$s}"}[total] > ${"strat{$s-1}"}[total]) 
       $sl_best = $sl_mult; //if this one did better than the previous one, then grab the value 
     } 

そして私は${"strat{$s-1}"}[total]、特に{$s-1}部分を関連のエラーメッセージを取得しています。ここにエラーメッセージがあります:

Parse error: syntax error, unexpected '-', expecting '}' ... 

動的に名前が付けられた変数の前の配列の位置をチェックする方法についての考えはありますか?私が持っていた

一つの解決策は、$previous = $s-1;は、すべてのチェックの前にして、${"strat{$s-1}"}ため$strat[$previous]を代入していましたが、これは醜いようだと、私は誰もがよりよい解決策を持っていたかどうかを確認したいですか?

答えて

5

ダイナミック変数は常に避けるべきで、代わりに別の配列、その後

if($s>1 && $s<=10) { 
    if($strat[$s]['total'] > $strat[$s-1]['total']) { 
      $sl_best = $sl_mult; //if this one did better than the previous one, then grab the value 
    } 
} 
+0

チェックマニュアル

サンプル配列

$strat = array( array('total' => 'some val'), array('total' => 'some val2'), array('total' => 'some val3'), array('total' => 'some val4'), ... ); 

http://php.net/manual/en/を使用してみてくださいlanguage.variables.variable.php –