Foreach Veya For Döngüde Hariç Tutma (PHP Sorunu)
-
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 -
-
yukarıdaki anahtara göre filtreler, alttaki ilkini atlayıp diğerlerini döner.
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 -
https://www.w3schools.com/php/func_array_shift.asp
-
-
Arkadaşlar hepinize çok teşekkür ederim yazılarınızla baya bir şey öğrendim kodu @yunusemre nin yöntemi ile düzelttim.
-
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.
-
edit: düzgün okumamışım
yolbulucu tarafından 22/Nis/20 14:26 tarihinde düzenlenmiştir -
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
-
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
-
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?