• 07-01-2014, 17:48:42
    #1
    Merhaba, sıralamada bir değişken kullanıyorum ancak yapamadım.
    Aşağıda sayılar değişkenindeki toplam(1) yazan yeri 1000 e kadar uzatmam lazım, elle yazmak dışında bunu nasıl yapabilirim ?

    Yani şu şekil olması gerekiyor:
    $sayilar=array(toplam(1),toplam(2),toplam(3)); //1000 e kadar uzayacak
    Kodlar
    $sayilar=array(toplam(1));
    for($i=0; $i<=9; $i++)
    {
    for($k=$i+1; $k<=10; $k++)
    {
    if($sayilar[$i]<$sayilar[$k])
    {$sakla=$sayilar[$i];
    $sayilar[$i]=$sayilar[$k];
    $sayilar[$k]=$sakla;}
    }
    }
    for($i=0;$i<=10;$i++)
    {
    echo $sayilar[$i]. "<br>";
    }
  • 07-01-2014, 17:55:00
    #2
    $degisken = "toplam(1)";
    for( $i=2; $i<1001; $i++ ){
    $degisken = $degisken.",toplam($i)";
    }
    $sayilar=array($degisken);
    print_r($sayilar);
    Gibi bir yöntem deneyebilirsiniz.
  • 07-01-2014, 18:02:20
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Cani23;

    Bu betik işinizi görecektir.

    <?php
    	
    	function toplam($sayi)
    	{
    		/**
    		* Siz kullandığınız fonksiyonu bu fonksiyon ile değiştirirsiniz.
    		*/
    		return rand($sayi, (($sayi + rand(1, 1000)) * 20));
    	}
    	
    	/**
    	* Tam olarak yapmak istediğiniz işlem bu sanırım
    	*/
    	$sayilar = array_map("toplam", range(1, 1000));
    	
    	/**
    	* $sayilar dizisini sıralayalım.
    	*/
    	sort($sayilar);
    	
    	/**
    	* Oluşan çıktıyı ekrana yazalım.
    	*/
    	print_r($sayilar);
  • 07-01-2014, 18:11:32
    #4
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    $degisken = "toplam(1)";
    for( $i=2; $i<1001; $i++ ){
    $degisken = $degisken.",toplam($i)";
    }
    $sayilar=array($degisken);
    print_r($sayilar);
    Gibi bir yöntem deneyebilirsiniz.
    Hocam bu işe yaradı ancak array kodu çalışmadı. Şu şekilde bir sonuç ekrana yansıyor.

    Array ( [0] => toplam(1)
    toplam(2)
    toplam(3)
    toplam(4)
    toplam(5)
    toplam(6)
    toplam(7)
    toplam(8)
    toplam(9) )

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:11:32 -->-> Daha önceki mesaj 18:09:44 --

    saintx adlı üyeden alıntı: mesajı görüntüle
    @Cani23;

    Bu betik işinizi görecektir.

    <?php
    	
    	function toplam($sayi)
    	{
    		/**
    		* Siz kullandığınız fonksiyonu bu fonksiyon ile değiştirirsiniz.
    		*/
    		return rand($sayi, (($sayi + rand(1, 1000)) * 20));
    	}
    	
    	/**
    	* Tam olarak yapmak istediğiniz işlem bu sanırım
    	*/
    	$sayilar = array_map("toplam", range(1, 1000));
    	
    	/**
    	* $sayilar dizisini sıralayalım.
    	*/
    	sort($sayilar);
    	
    	/**
    	* Oluşan çıktıyı ekrana yazalım.
    	*/
    	print_r($sayilar);
    Hocam psdbul'un kodları benim istediğime daha yatkın ancak sizinkindede aynı şekilde ekrana yansırken başına array geliyor.
  • 07-01-2014, 18:24:07
    #5
    Cani23 adlı üyeden alıntı: mesajı görüntüle
    Hocam bu işe yaradı ancak array kodu çalışmadı. Şu şekilde bir sonuç ekrana yansıyor.

    Array ( [0] => toplam(1)
    toplam(2)
    toplam(3)
    toplam(4)
    toplam(5)
    toplam(6)
    toplam(7)
    toplam(8)
    toplam(9) )
    siz nasıl bir sonuç vermesini istiyorsunuz ?

    Eğer array olarak bir sonuç döndürmesini istiyorsanız

    <?php
    $degisken = array();
    for( $i=1; $i<1001; $i++ ){
    $degisken[$i] = "toplam($i)";
    }
    print_r($degisken);
    ?>
    
    // Çıktısı
    
    
    Array
    (
        [1] => toplam(1)
        [2] => toplam(2)
        [3] => toplam(3)
        [4] => toplam(4)
    )
  • 07-01-2014, 18:55:32
    #6
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    siz nasıl bir sonuç vermesini istiyorsunuz ?

    Eğer array olarak bir sonuç döndürmesini istiyorsanız

    <?php
    $degisken = array();
    for( $i=1; $i<1001; $i++ ){
    $degisken[$i] = "toplam($i)";
    }
    print_r($degisken);
    ?>
    
    // Çıktısı
    
    
    Array
    (
        [1] => toplam(1)
        [2] => toplam(2)
        [3] => toplam(3)
        [4] => toplam(4)
    )
    Tamamdır hocam oldu teşekkürler
  • 08-01-2014, 15:16:14
    #7
    Arkadaşlar bir sorum daha olacak. Şu şekilde sorunsuz olarak toplam değişkenindeki sayılar büyükten küçüğe sıralanıyor. Örnek olarak şu şekilde çıkıyor:

    12500
    7000
    300


    $degisken = array();
    for( $i=1; $i<=100; $i++ ){
    $degisken[$i] = toplam($i); //toplam($i) değeri 12500, 7000, 300 rakamlarını ekrana yansıtıyor.
    }
    
    rsort($degisken);
    
    for($k=0; $k<=$i; $k++){
    echo $degisken[$k]."<br>";
    }
    Ancak ben bu sayıların yanına yazı eklemek istiyorum, eklediğim zaman ise sadece ilk haneye göre büyükten küçüğe diziliyor ve sorun çıkıyor. Örnek olarak aşağıdaki gibi görünüyorlar.

    7000(yazı)
    300(yazı)
    12500(yazı)


    Yapmaya çalıştığım kod ise şu şekilde:
    $degisken = array();
    for( $i=1; $i<=100; $i++ ){
    $degisken[$i] = toplam($i)."(yazı)"; //toplam($i) değeri 12500, 7000, 300 rakamlarını ekrana yansıtıyor.
    }
    
    rsort($degisken);
    
    for($k=0; $k<=$i; $k++){
    echo $degisken[$k]."<br>";
    }
    Sıralamayı bozmadan nasıl yanlarına (yazı)yı ekleyebilirim ?