Döngü için de değişkeni arttırırsak den önceki değerini almak nasıl?

5 Cevap php

In My last post I asked : How to create dynamic incrementing variable using "for" loop in php? like wise: $track_1,$track_2,$track_3,$track_4..... so on....

kimin cevabı ben olarak seçilmiştir

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

ve

for($i = 0; $i < 10; $i++) {
    ${'track_' . $i} = 'val'
}

Şimdi, ne şimdiki değişken daha önceki değişken Değer ihtiyacınız varsa?

5 Cevap

for($i = 0; $i < 10; $i++) {
    ${'track_' . $i} = 'val'
    if($i != 0){
        $prev_val = ${'track_' . ($i - 1)}
    }
}

Ama bu uygulama içindir bu diziler, kullanmak daha iyidir.

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

Ben simples yolu iki değişken kullanmak olacaktır sanırım.

$name2 = "track_0";
for($i = 1; $i < 10; $i++) {
  $name1 = $name2;
  $name2 = "track_$i";
  $$name1 = 'hello_previous';
  $$name2 = 'hello_this';
}

Açıkça i kullanırsanız ya = [0 ... 10] bir değişken adı oluşturmak için, sadece yazmak olabilir $name2 = "track_". $i; $name1 = "track_" . ($i - 1);

Ben diğerleri sadece 1 ile çıkarma söylediğini biliyorum, ama liste giderse ne varsa 1, 2, 4, 5, 8, 9? 8 önceki 7 değil, ancak, 5, bu Aşağıdaki yöntem (eğer ihtiyaç olarak değişiklik biraz çalışmak için) gerçek önceki değerini almanın bir yolunu sağlamak değil, bir tahmin, bir olacaktır.

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;
}
if ($i != 0)
{
  $prev = ${'track_' . ($i-1)} ;
}

?

${'track_' . ($i-1)}; yeterli değil mi?