• 09-02-2014, 19:26:07
    #1
    Platin üye
    Arkadaşlar Selamlar;

    Kod misal:
    $karakterler = "abcçdefgğhıijklmnoöpqrsştuüvwxyz";
    Harflerinden oluşan sıralı bir şekilde,
    a
    b
    c
    ...
    z
    ------------
    daha sonra iki basamaklı;
    aa
    ab
    ...
    ax bittiğinde,
    ba
    bb
    bc
    ....
    zz
    ----------

    şeklinde misal ben 5 basamaklı dediğimde 5 basamağa kadar sıralı bir şekilde tüm harfleri bana verecek bir fonksiyon biliyor musunuz?

    Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.
  • 09-02-2014, 20:08:59
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Hero; sanırım böyle bi' şey istiyorsunuz.

    <?php
    	
    	function erroneous_alphabet_loop($digit, $prefix = "digit_")
    	{
    		$response = array();
    		
    		$char_digit = str_repeat("z", $digit);
    		
    		for($i = "a"; $i != $char_digit; $i++)
    		{
    			if(!isset($response[$prefix.strlen($i)]))
    			{
    				$response[$prefix.strlen($i)] = array();
    			}
    			
    			$response[$prefix.strlen($i)][] = $i;
    		}
    		
    		/* Düzenleme: z harfini eklemiyordu. Artık ekliyor. */
    		
    		for($i = 1; $i <= $digit; $i++)
    		{
    			$values = array_values($response[$prefix.$i]);
    			
    			if(!in_array(str_repeat("z", $i), $values))
    			{
    				$response[$prefix.$i][] = str_repeat("z", $i);
    			}
    		}
    		
    		return $response;
    	}
    	
    	$response = erroneous_alphabet_loop(2, "basamak_");
    	
    	print_r($response["basamak_1"]); // 1. basamakta olanları ekrana yazalım. örnek; a b c d e
    	print_r($response["basamak_2"]); // 2. basamakta olanları ekrana yazalım. örnek; aa ab ac ad
  • 09-02-2014, 20:26:52
    #3
    Platin üye
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Hero; sanırım böyle bi' şey istiyorsunuz.

    <?php
    	
    	function erroneous_alphabet_loop($digit, $prefix = "digit_")
    	{
    		$response = array();
    		
    		$char_digit = str_repeat("z", $digit);
    		
    		for($i = "a"; $i != $char_digit; $i++)
    		{
    			if(!isset($response[$prefix.strlen($i)]))
    			{
    				$response[$prefix.strlen($i)] = array();
    			}
    			
    			$response[$prefix.strlen($i)][] = $i;
    		}
    		
    		/* Düzenleme: z harfini eklemiyordu. Artık ekliyor. */
    		
    		for($i = 1; $i <= $digit; $i++)
    		{
    			$values = array_values($response[$prefix.$i]);
    			
    			if(!in_array(str_repeat("z", $i), $values))
    			{
    				$response[$prefix.$i][] = str_repeat("z", $i);
    			}
    		}
    		
    		return $response;
    	}
    	
    	$response = erroneous_alphabet_loop(2, "basamak_");
    	
    	print_r($response["basamak_1"]); // 1. basamakta olanları ekrana yazalım. örnek; a b c d e
    	print_r($response["basamak_2"]); // 2. basamakta olanları ekrana yazalım. örnek; aa ab ac ad
    Sen bu işi biliyorsun @saintx , teşekkürler.

    Bende bu şekilde iç içe forla çözmeye çalıştıydım. Bu senin verdiğin kısa ve kolay.

    $karakterler = "abcdefg";
    
    for($a=0;$a<strlen($karakterler);$a++)
    {
        echo $karakterler[$a];
        echo "</br>";
        for($b=0;$b<strlen($karakterler);$b++)
        {
            echo $karakterler[$a].$karakterler[$b];
            echo "</br>";
            for($c=0;$c<strlen($karakterler);$c++)
    ...
  • 09-02-2014, 23:48:20
    #4
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Hero; sanırım böyle bi' şey istiyorsunuz.

    <?php
        
        function erroneous_alphabet_loop($digit, $prefix = "digit_")
        {
            $response = array();
            
            $char_digit = str_repeat("z", $digit);
            
            for($i = "a"; $i != $char_digit; $i++)
            {
                if(!isset($response[$prefix.strlen($i)]))
                {
                    $response[$prefix.strlen($i)] = array();
                }
                
                $response[$prefix.strlen($i)][] = $i;
            }
            
            /* Düzenleme: z harfini eklemiyordu. Artık ekliyor. */
            
            for($i = 1; $i <= $digit; $i++)
            {
                $values = array_values($response[$prefix.$i]);
                
                if(!in_array(str_repeat("z", $i), $values))
                {
                    $response[$prefix.$i][] = str_repeat("z", $i);
                }
            }
            
            return $response;
        }
        
        $response = erroneous_alphabet_loop(2, "basamak_");
        
        print_r($response["basamak_1"]); // 1. basamakta olanları ekrana yazalım. örnek; a b c d e
        print_r($response["basamak_2"]); // 2. basamakta olanları ekrana yazalım. örnek; aa ab ac ad
    Herşeyi anladım tamam doğru fonksiyon buda z harfine ne garizi var niye eklemiyor
  • 10-02-2014, 00:40:49
    #5
    @exselansTR_; kanka ben denediğimde ekliyordu? sende eklemiyor mu?
  • 10-02-2014, 02:18:38
    #6
    saintx adlı üyeden alıntı: mesajı görüntüle
    @exselansTR_; kanka ben denediğimde ekliyordu? sende eklemiyor mu?
    Bi fonksiyonu incele 2. döngüde z harfi için tekrar bir döngü başlıyor.
  • 10-02-2014, 14:26:02
    #7
    @exselansTR; biliyorum olm sende eklemiyo sandım ben

    GT-I8160 cihazımdan Tapatalk kullanılarak gönderildi