• 21-06-2015, 15:24:43
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar nasıl bir başlık açıp nasıl soracağımı bilemiyorum...

    Şimdi aşağıda $liste adında dizinim var ben bunu rastgele döndürüp her döngüde çıkan sonucu sildirip işleme soktum yani

    1. döngüne rastgele ilk Armut çıktıysa ben bunun anahtarını sildirip döngüye devam ettiriyorum.

    2.döngüde $liste = array("Elma","Kiraz","Portakal"); şeklinde dönüyor.2.döngüde Elma çıktıysa

    3. döngü array("Kiraz","Portakal"); şeklinde devam ediyor..

    Bu şekilde istediğimi sadece for döngüsünde elde ediyorum...for döngü içinde echo Sec($liste) şeklinde

    ama ben bu sonucu bir değişkene aktarınca bana sadece son dönen diziyi veriyor... for döngüsü dışında dönen dizileri nasıl alırım?

    function Sec() te birtakım değişiklik yapılmalı ama ne yaptımsa başaramadım

    <?php 
    $liste = array("Elma","Armut","Kiraz","Portakal");
    
    // diziden verilen değeri içeren anahtarları siler.
    function arrDel(&$arr, $val){
    	while (($key = array_search($val, $arr)) !== false) 
    	{
    	    unset($arr[$key]);
    	}
     
    }
     	function Sec(&$liste){
    		if(count($liste) == 0)
    			return false;
     
    		$sonuc = $liste[array_rand($liste)]; 
     
    		arrDel($liste, $sonuc); 
     
    		return $sonuc;
    	}
    	for($i=0;$i<=4;$i++){
    		//for içinde listeleniyor fakat burdaki listeyi başka değişkene aktarsamda listeyi alamıyorum
    		echo $sonuc = Sec($liste);
    	}
    	
    	echo "<br /><br /><br /><br />";
    	echo "Döngü Dışında Almak isteyince Alamıyorum".$sonuc;
    ?>
  • 21-06-2015, 17:04:18
    #2
    Merhaba,
    Dışarıda
    $output = array();
    oluşturup(aynı liste yaptığın gibi).
    array_push($output, $sonuc);
    yapabilirsin.
  • 21-06-2015, 17:32:52
    #3
    garrell adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Dışarıda
    $output = array();
    oluşturup(aynı liste yaptığın gibi).
    array_push($output, $sonuc);
    yapabilirsin.
    Hocam bir haftadır kafam döndü rüyalarıma dahi girer oldu

    dışarıda $output = array(); olusturup diğer işlem için yeniden fonksiyon mu yazacağım yani?
  • 21-06-2015, 17:39:59
    #4
    Konya adlı üyeden alıntı: mesajı görüntüle
    Hocam bir haftadır kafam döndü rüyalarıma dahi girer oldu

    dışarıda $output = array(); olusturup diğer işlem için yeniden fonksiyon mu yazacağım yani?
    Yok gerek yok bir fonksiyon daha yazmana. return $sonuc'un yukarısına array_push($output, $sonuc); yazman yeterli. Sonra Output'un içi dolu olacak.
  • 21-06-2015, 19:07:19
    #5
    garrell adlı üyeden alıntı: mesajı görüntüle
    Yok gerek yok bir fonksiyon daha yazmana. return $sonuc'un yukarısına array_push($output, $sonuc); yazman yeterli. Sonra Output'un içi dolu olacak.
    dediğiniz gibi yaptım hocam ama $output dizi yine boş gözüküyor.

    <?php 
    $liste = array("Elma","Armut","Kiraz","Portakal");
    $output = array();
    // diziden verilen değeri içeren anahtarları siler.
    function arrDel(&$arr, $val){
    	while (($key = array_search($val, $arr)) !== false) 
    	{
    	    unset($arr[$key]);
    	}
     
    }
     	function Sec(&$liste){
    		if(count($liste) == 0)
    			return false;
     
    		$sonuc = $liste[array_rand($liste)]; 
     
    		arrDel($liste, $sonuc); 
    		array_push($output, $sonuc);
    		return $sonuc;
    	}
    	for($i=0;$i<=4;$i++){
    		//for içinde listeleniyor fakat burdaki listeyi başka değişkene aktarsamda listeyi alamıyorum
    		echo $sonuc = Sec($liste);
    	}
    	
    	echo "<br /><br /><br /><br />";
    	foreach($output as $yaz){
    		
    		echo $yaz;
    	}
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:07:19 -->-> Daha önceki mesaj 17:52:29 --

    oldu hocam Allah senden razı olsun beni çoook büyük bir dertten kurtardın fonksiyon içerisinde global $output; tanımlayınca sorun çözüldü

    sana nasıl teşekkür edeceğimi bilemiyorum çok ama çok sağolasın hocam
  • 21-06-2015, 22:56:00
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Konya adlı üyeden alıntı: mesajı görüntüle
    dediğiniz gibi yaptım hocam ama $output dizi yine boş gözüküyor.

    <?php 
    $liste = array("Elma","Armut","Kiraz","Portakal");
    $output = array();
    // diziden verilen değeri içeren anahtarları siler.
    function arrDel(&$arr, $val){
    	while (($key = array_search($val, $arr)) !== false) 
    	{
    	    unset($arr[$key]);
    	}
     
    }
     	function Sec(&$liste){
    		if(count($liste) == 0)
    			return false;
     
    		$sonuc = $liste[array_rand($liste)]; 
     
    		arrDel($liste, $sonuc); 
    		array_push($output, $sonuc);
    		return $sonuc;
    	}
    	for($i=0;$i<=4;$i++){
    		//for içinde listeleniyor fakat burdaki listeyi başka değişkene aktarsamda listeyi alamıyorum
    		echo $sonuc = Sec($liste);
    	}
    	
    	echo "<br /><br /><br /><br />";
    	foreach($output as $yaz){
    		
    		echo $yaz;
    	}
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:07:19 -->-> Daha önceki mesaj 17:52:29 --

    oldu hocam Allah senden razı olsun beni çoook büyük bir dertten kurtardın fonksiyon içerisinde global $output; tanımlayınca sorun çözüldü

    sana nasıl teşekkür edeceğimi bilemiyorum çok ama çok sağolasın hocam

    ALTERNATİF:

    <?php
    $liste = array("Elma","Armut","Kiraz","Portakal");

    // diziden verilen değeri içeren anahtarları siler.
    function arrDel(&$arr, $val){
    while (($key = array_search($val, $arr)) !== false)
    {
    unset($arr[$key]);
    }

    }
    function Sec(&$liste){
    if(count($liste) == 0)
    return false;

    $sonuc = $liste[array_rand($liste)];

    arrDel($liste, $sonuc);

    return $sonuc;
    }
    $sonuc2 = '';
    for($i=0;$i<=4;$i++){
    //for içinde listeleniyor fakat burdaki listeyi başka değişkene aktarsamda listeyi alamıyorum
    echo $sonuc = Sec($liste);
    $sonuc2 .= $sonuc."<br>";
    }

    echo "<br /><br /><br /><br />";
    echo "Döngü Dışında Almak isteyince Alamıyorum<br />".$sonuc2;
    ?>
  • 21-06-2015, 23:43:54
    #7
    arimedya adlı üyeden alıntı: mesajı görüntüle
    ALTERNATİF:

    <?php
    $liste = array("Elma","Armut","Kiraz","Portakal");

    // diziden verilen değeri içeren anahtarları siler.
    function arrDel(&$arr, $val){
    while (($key = array_search($val, $arr)) !== false)
    {
    unset($arr[$key]);
    }

    }
    function Sec(&$liste){
    if(count($liste) == 0)
    return false;

    $sonuc = $liste[array_rand($liste)];

    arrDel($liste, $sonuc);

    return $sonuc;
    }
    $sonuc2 = '';
    for($i=0;$i<=4;$i++){
    //for içinde listeleniyor fakat burdaki listeyi başka değişkene aktarsamda listeyi alamıyorum
    echo $sonuc = Sec($liste);
    $sonuc2 .= $sonuc."<br>";
    }

    echo "<br /><br /><br /><br />";
    echo "Döngü Dışında Almak isteyince Alamıyorum<br />".$sonuc2;
    ?>

    Hocam emek harcayıp ilgilendiğiniz için sizde çok sağolun Alternatif görmemde çok iyi oldu
  • 21-06-2015, 23:47:30
    #8
    Konya adlı üyeden alıntı: mesajı görüntüle
    Hocam emek harcayıp ilgilendiğiniz için sizde çok sağolun Alternatif görmemde çok iyi oldu
    Rica ederim, işinizin görülmesine sevindim. Kolay gelsin.