• 02-12-2013, 00:11:49
    #1
    Reveloper
    Merhaba,

    foreach ve i++ hakkında yarım yamalak bilgim var bunun için yardım isteyeceğim

    foreach ile bir veri bastırıyorum
    örnek:

    foreach
    <div class="sol">

    </div>
    /foreach


    ancak şu olması gerekli

    1. basılan veride:
    <div class="sol">

    2. basılan veride <div class="sag">

    olması gerekli? bunun için örnek bir kod verebilirmisiniz?
  • 02-12-2013, 00:50:27
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Burti;

    Bu örnek betik ile bi' mantık yürütebileceğini umuyorum.

    <?php
    	
    	$array = array(
    		(object) array(
    			"name" => "Ogün"
    		),
    		(object) array(
    			"name" => "Ebru"
    		)
    	);
    	
    	foreach($array as $key => $value)
    		echo ($key % 2 == 0) ? sprintf("<div id=\"me\">%s</div>", $value->name) : sprintf("<div id=\"you\">%s</div>", $value->name);
  • 02-12-2013, 00:50:36
    #3
    Sorduğunuz soruyu tam anlayamamış olsam da cevaplamaya çalışayım. 1inci veride sol, 2de sağ, 3de sol, 4te sağ şeklinde devam eden bir döngü kurmak istiyorsanız, birazcık mantık kurmak gerekiyor. Dikkat ettiyseniz tek sayılarda sol, çift sayılarda sağ yazdırıyorsunuz. Yani kontrol etmeniz gereken şey, $i 'nin (ya da döngüde kullandığınız counter değişkeni her ne ise onun) çift veya tek olup olmadığını kontrol etmek. Bunu da $i 'yi 2ye bölerek gerçekleştirebilirsiniz.
  • 02-12-2013, 09:56:00
    #4
    çok zorlamaya gerek yok;

    $divtipi = "";
    foreach($liste as $key => $value){
    	if($divtipi=="sag"){$divtipi="sol";}else{$divtipi="sag";}
    	echo "<div class='$divtipi'>$divtipi</div>";
    }
  • 02-12-2013, 11:33:22
    #5
    Üyeliği durduruldu
    <?php 
    $i=0; 
    foreach($array as $val):
    $position= ($i%2==0) ? 'sol' : 'sag'; // $i değerinin 2 ye bölümünden kalan 0 ise : sol , değil ise sag
    echo "<div class='$position'></div>"; 
    $i++; // $i değerini arttır. 
    endforeach; 
    ?>
  • 02-12-2013, 13:18:00
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Eğer benim gibi "byte cimrisi" bir yapınız varsa yukarıda arkadaşların verdiği arttırım yerine boolean olarak yapabilirsiniz:

    $alternate = false;
    
    foreach (array(1, 2, 3, 4, 5) as $v) {
    	echo '<div class="', (($alternate = !$alternate) ? 'sol' : 'sag'), '">', $v, '</div>';
    }
  • 02-12-2013, 21:43:14
    #7
    @grafitus;

    Verdiğin örneğin dahada kısa hali ;

    foreach(array(1, 2, 3, 4, 5) as $key => $value)
    	printf("<div class=\"%s\">%s</div>", (($key % 2) ? "sol" : "sag"), $value);