Php 如何从for循环中的递增变量中获取上一个值?

Php 如何从for循环中的递增变量中获取上一个值?,php,for-loop,Php,For Loop,在上一篇帖子中,我问: 如何在php中使用“for”循环创建动态递增变量?像wise:$track_1、$track_2、$track_3、$track_4。。。。。等等 我选择谁的答案作为答案 for($i = 0; $i < 10; $i++) { $name = "track_$i"; $$name = 'hello'; } ($i=0;$i

在上一篇帖子中,我问: 如何在php中使用“for”循环创建动态递增变量?像wise:$track_1、$track_2、$track_3、$track_4。。。。。等等

我选择谁的答案作为答案

for($i = 0; $i < 10; $i++) {
  $name = "track_$i";
  $$name = 'hello';
}
($i=0;$i<10;$i++)的
{
$name=“track_$i”;
$$name='hello';
}

($i=0;$i<10;$i++)的
{
${'track.'$i}='val'
}
现在,如果我需要变量的值早于当前变量,该怎么办

if ($i != 0)
{
  $prev = ${'track_' . ($i-1)} ;
}

我想最简单的方法是使用两个变量

$name2 = "track_0";
for($i = 1; $i < 10; $i++) {
  $name1 = $name2;
  $name2 = "track_$i";
  $$name1 = 'hello_previous';
  $$name2 = 'hello_this';
}
$name2=“跟踪0”;
对于($i=1;$i<10;$i++){
$name1=$name2;
$name2=“跟踪\$i”;
$$name1='hello_previous';
$$name2='hello_this';
}
或者,如果显式使用i=[0…10]生成变量名,则只需编写
$name2=“track\ux”$一,$name1=“跟踪”。(i-1元)

用于($i=0;$i<10;$i++){
${'track.'$i}='val'
如果($i!=0){
$prev_val=${'track_.'($i-1)}
}
}
但是使用数组更好,因为它是针对这个应用程序的

$tracks = array();
for($i = 0; $i < 10; $i++){
    $tracks[$i] = 'val';
    if($i != 0){
        $prev_val = $tracks[$i-1];
    }
}
$tracks=array();
对于($i=0;$i<10;$i++){
$tracks[$i]=“val”;
如果($i!=0){
$prev_val=$tracks[$i-1];
}
}

我知道其他人在说只需减去1,但是如果你的列表是1、2、4、5、8、9怎么办?前一个8不是7,而是5,下面的方法(根据需要进行一些修改)将提供一种获得前一个值的方法,而不是猜测值

for($i = 0; $i < 10; $i++) {
    ${'track_' . $i} = 'val'
    if(!empty($last_val))
         // do what you want here

    // set a var to store the last value
    $last_val=$i;
}
($i=0;$i<10;$i++)的
{
${'track.'$i}='val'
如果(!空($last_val))
//你想在这里干什么就干什么
//设置一个var来存储最后一个值
$last_val=$i;
}

${'track_uu.'($i-1)}不够用?

${'track_u.'($i-1)}
还不够吗?如果你能将这个回复粘贴到我的答案栏中,我想接受它,它对我来说很有效….+1用于指出数组。像这样使用的变量通常是设计不好的标志。但是在第一个周期会产生一个通知,因为
${'track_u1;-1'}不存在。
$tracks = array();
for($i = 0; $i < 10; $i++){
    $tracks[$i] = 'val';
    if($i != 0){
        $prev_val = $tracks[$i-1];
    }
}
for($i = 0; $i < 10; $i++) {
    ${'track_' . $i} = 'val'
    if(!empty($last_val))
         // do what you want here

    // set a var to store the last value
    $last_val=$i;
}