folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Foreach Veya For Döngüde Hariç Tutma (PHP Sorunu)



Foreach Veya For Döngüde Hariç Tutma (PHP Sorunu)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    turkz
    turkz's avatar
    Kayıt Tarihi: 13/Aralık/2009
    Erkek

    PHP'de takıldığım bir sorun var foreach veya for döngüde hangisi uygunsa 2. sıradaki içerikten başlatmak istiyorum. Çağırdığımtüm içerikler döngüye girsin fakat 1.'yi listelemesin istiyorum. (1. kod)

    return [
            'BIST 100' => [
                'oran' => $borsa['YUZDEDEGISIM'],
                'net' => $borsa['NET'],
                'satis' => $borsa['KAPANIS']
            ],
    		'Dolar' => [
                'oran' => $usd['YUZDEDEGISIM'],
                'net' => $usd['NET'],
                'satis' => $usd['SATIS']
            ],
            'Euro' => [
                'oran' => $eur['YUZDEDEGISIM'],
                'net' => $eur['NET'],
                'satis' => $eur['SATIS']
            ],
    		'Sterlin' => [
                'oran' => $ste['YUZDEDEGISIM'],
                'net' => $ste['NET'],
                'satis' => $ste['SATIS']
            ],
            'Altın' => [
                'oran' => $altin['YUZDEDEGISIM'],
                'net' => $altin['NET'],
                'satis' => $altin['SATIS']
            ]
        ];

    Yukarıdaki key'leri aşağıdaki kod ile foreach kullanarak döngüde listeleyebiliyorum. (2. kod)

    <?php foreach($Kurlar as $key => $kur): ?>
    	<option value="<?=$kur['satis']?>"><?=$key?></option>
    	<?php endforeach; ?>

     

    Listelediğimde aldığım sonuç: (3. kod)

    <option value="97619">BIST 100</option>
    		<option value="6.9815">Dolar</option>
    		<option value="7.5915">Euro</option>
    		<option value="8.5986">Sterlin</option>
    		<option value="378.315">Altın</option>

    Ben bu listelemede BIST 100 satırı görünmesin istiyorum. Yani listelemeye 2. sıradan başlasın. For ile for ($x = 2; $x <= 6; $x++) şu tür bir kod görmüştüm ama yapamadım. Nasıl düzeltilmeli ki (2. kod) istediğim gibi çıktı versin?

    turkz tarafından 22/Nis/20 00:42 tarihinde düzenlenmiştir

    Dünyayı iyiler kurtaracak.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek
    int intSayac = 0;
    <?php foreach($Kurlar as $key => $kur): ?>
    if (intSayac >0) <option value="<?=$kur['satis']?>"><?=$key?></option>
    intSayac += 1; <?php endforeach; ?>

    Php versiyonu yazamadım. c# tarzı yazdım sen onu çevirirsin.

     


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acemi-webci
    acemi-webci's avatar
    Kayıt Tarihi: 11/Haziran/2008
    Erkek
    1
    2
    3
    <?php foreach($Kurlar as $key => $kur): if($key!='BIST 100'):?>
        <option value="<?=$kur['satis']?>"><?=$key?></option>
        <?php endifendforeach; ?>

    yukarıdaki anahtara göre filtreler, alttaki ilkini atlayıp diğerlerini döner.

    1
    2
    3
    4
    5
    <?php
    $sayac = 0;
    foreach($Kurlar as $key => $kur): if($sayac>0):?>
        <option value="<?=$kur['satis']?>"><?=$key?></option>
        <?php endif$sayac++; endforeach; ?>

    edit 2. kod ekleyince editör bozuluyor, görünmüyor anasını satim

    acemi-webci tarafından 22/Nis/20 02:24 tarihinde düzenlenmiştir

    ...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    https://www.w3schools.com/php/func_array_shift.asp

     


    |sadece aptalların başarısı ders notu ile ölçülür|
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yunusemre
    yunusemre's avatar
    Kayıt Tarihi: 22/Ağustos/2016
    Erkek

    foreach hemen altına

    if( $key == 'BIST 100' ) continue;

    eklemen yeterli.

     

     


    "Programcılar saatler boyunca çalışmak zorunda kalmalarına engel olacak sistemler tasarlamaya saatler boyunca uğraşırlar." David Allen
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    turkz
    turkz's avatar
    Kayıt Tarihi: 13/Aralık/2009
    Erkek

    Arkadaşlar hepinize çok teşekkür ederim yazılarınızla baya bir şey öğrendim kodu @yunusemre nin yöntemi ile düzelttim.


    Dünyayı iyiler kurtaracak.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    for (ve türevleri) döngüsünün içinde filtreleme yapmak, eğer aynı filtreleme yüzlerce kez yapılacaksa, performans sorunları oluşturur.

    Bu bağlamda @wert 'in önerdiği yöntem çok daha optimize.


    Olaylara karışmayın!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    edit: düzgün okumamışım

    yolbulucu tarafından 22/Nis/20 14:26 tarihinde düzenlenmiştir

    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek

    türkçe key kullanmak haram hocam haram.

    html kısmında türkçe print et anahtarlarını.

    $key2print = ["altin" => "Altın"];

    for falan...

    echo $key2print[$key];

    şeklinde yapabilirsin dilersen


    0x0480 takilin madem ﷽﷽﷽
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    YeniHarman bunu yazdı

    for (ve türevleri) döngüsünün içinde filtreleme yapmak, eğer aynı filtreleme yüzlerce kez yapılacaksa, performans sorunları oluşturur.

    Bu bağlamda @wert 'in önerdiği yöntem çok daha optimize.

    performans açısından bakarsan array_shift O(N) çalışıyor,  o da baya kötü performans verir

    https://stackoverflow.com/a/2484455/5008590

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    yolbulucu bunu yazdı
    YeniHarman bunu yazdı

    for (ve türevleri) döngüsünün içinde filtreleme yapmak, eğer aynı filtreleme yüzlerce kez yapılacaksa, performans sorunları oluşturur.

    Bu bağlamda @wert 'in önerdiği yöntem çok daha optimize.

    performans açısından bakarsan array_shift O(N) çalışıyor,  o da baya kötü performans verir

    https://stackoverflow.com/a/2484455/5008590

     

    ??? Yeni diziyi kullansak olmaz mı???

    Diğer çözümler de O(N) zaten. 100 defa bu diyizi kullanacaksak? 100 defa if bloğu mu çalıştıralım n eleman için yoksa bir defa doğrusal büyüklükte bir metod ile lazım olan kısmı mı alalım?


    Olaylara karışmayın!
Toplam Hit: 2677 Toplam Mesaj: 14
php for foreach