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

  • DavidParody

    DavidParody

    17 EKİM 2009
  • filmurfreakur

    filmurfreaku

    29 Mart 2007
  • Rickymon Tero

    Rickymon Ter

    1 Ocak 2007