SORU
1 Temmuz 2009, ÇARŞAMBA


Nasıl bir foreach döngü içinde ilk ve son yineleme belirlemek için?

Soru basit. Benim kod foreach bir döngü var:

foreach($array as $element) {
    //code
}

Bu döngü, ilk veya son yineleme içinde bulunduğumuz zaman farklı tepki vermek istiyorum.

Nasıl bunu yapmak için?

CEVAP
8 Ocak 2012, Pazar


Eğer dizinizi benzersiz bir dizi değerleri varsa, o zaman ilk ve son öğe belirleme önemsiz

foreach($array as $element) {
    if ($element === reset($array))
        echo 'FIRST ELEMENT!';

    if ($element === end($array))
        echo 'LAST ELEMENT!';
}

Bu son ve ilk elementlerin sadece bir kez görünen bir dizi çalışır, aksi halde yanlış pozitif sonuç alırsın. Bu nedenle, anahtarları (kesinlikle benzersiz) karşılaştırmak gerekir.

foreach($array as $key => $element) {
    reset($array);
    if ($key === key($array))
        echo 'FIRST ELEMENT!';

    end($array);
    if ($key === key($array))
        echo 'LAST ELEMENT!';
}

Güncelleme:Bazı insanlar performans ve/endişe ya da bir foreach döngü içinde dizinin işaretçisini değiştirme. Bu döngü önce anahtar değeri önbelleğe alabilir.

reset($array);
$first = key($array);
foreach($array as $key => $element) {
    if ($key === $first)
        echo 'FIRST ELEMENT!';
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • SRI International

    SRI Internat

    30 NİSAN 2008