循环通过动态命名的数组并将结果与先前的位置结果进行比较。
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}"}
,但这看起来很难看,我想看看是否有人有更好的解决方案?
答案 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
}
}