php - 检查以前的动态变量名称

时间:2011-02-02 01:11:04

标签: 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[$previous]代替${"strat{$s-1}"},但这看起来很难看,我想看看是否有人有更好的解决方案?

1 个答案:

答案 0 :(得分:5)

应始终避免使用动态变量,而应尝试使用其他数组

示例数组

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

然后

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
  } 
}