Için-döngüler PHP foreach ifadeleri dönüştürmek için

2 Cevap php

How can you convert foreach -statements to for -loops in PHP?

Cevaplarınız kullanılacak örnekler

1

 foreach( $end_array[1]['tags'] as $tag )

ve

2

 foreach($end_array as $question_id => $row2)

2 Cevap

Her iki örnekte ifadeler bir dizi ifade 'olarak bırakıldı'. Bir dizi değerlere anahtarları bir eşleme saklar. Her iki örnek, bu haritalama öğeleri boyunca yineleme.

Birinci örnekte, değerleri (ve tuşları onlar eşleştirilir değil) sadece ilgilendi. Her tekrarında $ etiketi "geçerli" değer ifade eder.

Ikinci örnek $ question_id olarak anahtara anlamına gelir, $ ROW2 "geçerli" haritalama değerini ifade eder.

Genel olarak ifade

foreach($array as $key => $value) {
  ...
}

olarak yazılabilir olabilir

$keys = array_keys($array);
for($k=0; $k < count($keys); $k++) {
  $key = $keys[$k];
  $value = $array[$key];
  ...
}

Kodu için dönüştürülen sözdizimi sorunları var, (aynı zamanda daha hızlı büyük diziler için çalışıyor) aşağıdakileri deneyin:

$keys = array_keys($array);
for ($k = 0, $key_size = count($keys); $k < $key_size; $k++) {
  $key = $keys[$k];
  $value = $array[$key];
  ...
}