kez sınırlayıcı sayısı bir döngü php çalışır

6 Cevap php

Ben o zaman patlak ilk 10 öğelere sınırlamak için gereken bir foreach döngü var.

Ben burada ne yapardın?

foreach ($butters->users->user as $user) {
    $id = $user->id;
    $name = $user->screen_name;
    $profimg = $user->profile_image_url;
    echo "things";    
} 

De ayrıntılı bir açıklama seviniriz.

6 Cevap

Eğer foreach kullanmak istiyorsanız, yinelemeleri kontrol additionbal değişkeni ekleyebilirsiniz:

$i=0;
foreach ($butters->users->user as $user) {
    if($i==10) break;
    $id = $user->id;
    $name = $user->screen_name;
    $profimg = $user->profile_image_url;
    echo "things";  
    $i++;  
} 

Ayrıca LimitIterator kullanabilirsiniz.

örneğin

$users = new ArrayIterator(range(1, 100)); // 100 test records
foreach(new LimitIterator($users, 0, 10) as $u) {
  echo $u, "\n";
}

Çıkmak istediğiniz zaman bir döngü sayacı ve break kullanın.

$i = 0;
foreach ($butters->users->user as $user) {
  $id = $user->id;
  $name = $user->screen_name;
  $profimg = $user->profile_image_url;
  echo "things";    
  if (++$i >= 10) {
    break;
  }
} 

10. yineleme döngü sonunda çıkacaktır.

Orada bu çeşitli varyasyonları vardır ve seçtiğiniz olması gereken bir şey, dış döngü koşulu ya yürütmek istiyorum olup olmadığıdır. Düşünün:

foreach (read_from_db() as $row) {
  ...  
}

Bu döngü üstünde size çıkın 11 satırları okudum olacaktır. Altta exit o 10 olacak eğer. Her iki durumda döngü gövdesi 10 kez idam ama ekstra fonksiyon ya da olmayabilir istediklerini olabileceğini yürütme etti.

Eğer sayaç eklemek, foreach döngü tutmak isteyen hakkında emin değilseniz:

$count = 0;
foreach ($butters->users->user as $user) {
    $id = $user->id;
    $name = $user->screen_name;
    $profimg = $user->profile_image_url;
    echo "things";    

    $count++;
    if ($count == 10)
      break;
}

böylece her seferinde döngü, yürütür sayaç artırılır ve 10 ulaştığında, döngü dışına bozuldu.

Alternatif olarak mümkünse, bir for döngü olmak foreach döngü yeniden işleme mümkün olabilir.

Sadece üzerinde array_slice($butters->users->user, 0, 10) (ilk 10 element) yineleme.

Eğer foreach blok önce bir sayaç başlar ve döngü içinde buna karşı kontrol ve sayaç öylesine gibi 10 ise zarar verebilir,

$count = 1;
foreach ($butters->users->user as $user) {
    if($count == 10)
       break;
    $id = $user->id;
    $name = $user->screen_name;
    $profimg = $user->profile_image_url;
    echo "things";
    $count++;
}