• 31-10-2016, 18:11:57
    #1
    S.a. arkadaşlar,

    preg_match_all dönen diziyi gruplamam lazım fakat bir türlü nasıl yapabileceğim konusunda sıkıntı yaşıyorum. Bir bile sor demiş atalarımız kısacası yardımlarınızı rica ederim.

    Öncelikle ayrı ayrı verileri for döngüsü ile yazdırıp tekrar bir diziye atıyorum. Zaten hepsi bir html deseni içerisinde yer alıyor.

    Dönen birleştirilmiş dizi örneği:

    Array
    (
    [0] => H:11 - K:3 - W:28
    [1] => H:13 - K:3 - W:23
    [2] => H:22 - K:3 - W:24

    [3] => H:8 - K:3.5 - W:33
    [4] => H:5 - K:3.5 - W:44
    [5] => H:3 - K:3.5 - W:68
    [6] => H:1 - K:2 - W:99
    [7] => H:2 - K:2 - W:93
    [8] => H:2 - K:2 - W:91
    [9] => H:22 -K:3 - W:91
    [10]=> H:19 -K:3 -W:28
    [11] =>H:12 -K:3 - W:22

    )

    Şimdi bu diziyi gruplamam icap ediyor. Ortadaki K: değerlerine göre. Fakat dizide dikkat ederseniz iki tane K:3 Değeri var bu değerlerde ayrı bir dizide olmak durumunda yani sırası ile almak zorundayım. Böyle olmasaydı zaten php dizi kesişim hesaplama fonksiyonları iş görecekti zaten. Yani kademe kademe gruplamak icap ediyor.Yani bu diziden tekrar 4 dizi elde etmem gerekiyordu ayrıca sıralarıda önemli. Yani giriş ve kapanış dizilerinin ilerde şartlı ifadelerde kullanacağım. Umarım açıklayıcı olmuştur surçi lisa ettiysek afola.
  • 31-10-2016, 18:40:53
    #2
    dostum yapmak istediğini tam anlamıyla anlamadım
  • 31-10-2016, 18:50:55
    #3
    Google translate gibi olmuş hocam kusura bakmayın
  • 31-10-2016, 19:34:11
    #4
    Hahaha Aynen arkadaşlar şimdi bende okudum tekrardan harbiden olmamış Kusura bakmayın uzun zamandır uğraşıyorumda kafam allak bullak olmuş durumda. Neyse biraz ara verip tekrar güncellerim konuyu.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:34:11 -->-> Daha önceki mesaj 17:55:34 --

    Şöyle anlatmaya çalışayım o zaman

    Dizi:
    [0] => 3
    [1] => 3
    [2] => 3
    [3] => 3
    [4] => 3
    [5] => 3
    [6] => 3
    [7] => 4
    [8] => 4
    [9] => 4
    [10] => 5
    [11] => 5
    [12] => 5
    [13] => 6
    [14] => 6
    [15] => 6
    [16] => 3
    [17] => 3
    [18] => 3
    [19] => 3
    [20] => 3
    [21] => 3

    Yukarıdaki dizi ayrı ayrı gruplamak istiyorum fakat değeri 3 olanlarda farklı konumda yani birisi dizinin girişinde diğeri çıkışında bunlarda farklı bir dizide olmasını istiyorum. Öncelikle aşağıdaki fonksiyon ile gruplama yapabiliyorum fakat değeri 3 olanları aynı diziye atıyor. Ben değeri 3 olanların konumları farklı olduğundan ayrı dizilerde göstermek zorundayım.Bunu nasıl yapabilirim yardımlarınızı rica ediyorum umarım şimdi anlatabildimmi acaba.

    function ikili($var) {
            $coun = count($var);
            if($coun == 1) {
                return;
            }
            $arr = array();
            $series = array();
            for($i=1;$i<$coun;$i++) {
                if($var[$i-1] == $var[$i]) {
                    $arr[] = $var[$i-1];
                    $arr[] = $var[$i];    
                } else if(isset($arr[1])) {
                    $series[] = $arr;
                    $arr = array();
                }
            }
            return $series;
        }
  • 31-10-2016, 23:12:53
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    aLKaDraZ adlı üyeden alıntı: mesajı görüntüle
    Hahaha Aynen arkadaşlar şimdi bende okudum tekrardan harbiden olmamış Kusura bakmayın uzun zamandır uğraşıyorumda kafam allak bullak olmuş durumda. Neyse biraz ara verip tekrar güncellerim konuyu.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:34:11 -->-> Daha önceki mesaj 17:55:34 --

    Şöyle anlatmaya çalışayım o zaman

    Dizi:
    [0] => 3
    [1] => 3
    [2] => 3
    [3] => 3
    [4] => 3
    [5] => 3
    [6] => 3
    [7] => 4
    [8] => 4
    [9] => 4
    [10] => 5
    [11] => 5
    [12] => 5
    [13] => 6
    [14] => 6
    [15] => 6
    [16] => 3
    [17] => 3
    [18] => 3
    [19] => 3
    [20] => 3
    [21] => 3

    Yukarıdaki dizi ayrı ayrı gruplamak istiyorum fakat değeri 3 olanlarda farklı konumda yani birisi dizinin girişinde diğeri çıkışında bunlarda farklı bir dizide olmasını istiyorum. Öncelikle aşağıdaki fonksiyon ile gruplama yapabiliyorum fakat değeri 3 olanları aynı diziye atıyor. Ben değeri 3 olanların konumları farklı olduğundan ayrı dizilerde göstermek zorundayım.Bunu nasıl yapabilirim yardımlarınızı rica ediyorum umarım şimdi anlatabildimmi acaba.

    function ikili($var) {
            $coun = count($var);
            if($coun == 1) {
                return;
            }
            $arr = array();
            $series = array();
            for($i=1;$i<$coun;$i++) {
                if($var[$i-1] == $var[$i]) {
                    $arr[] = $var[$i-1];
                    $arr[] = $var[$i];    
                } else if(isset($arr[1])) {
                    $series[] = $arr;
                    $arr = array();
                }
            }
            return $series;
        }
    <?php
    	
    	$gid = 0;
    	$array = [ 1,1,1,3,3,3,4,4,5,1,1,1,3,3,4,4,2,2 ];
    	
    	foreach($array as $key => $value){
    		
    		if($key && $array[$key-1] != $value){
    			$gid++; 
    		}
    		
    		$array2[$gid][] = $value;
    	}
    	
    	print_r($array2);
  • 31-10-2016, 23:41:41
    #6
    PROOYUN adlı üyeden alıntı: mesajı görüntüle
    <?php
        
        $gid = 0;
        $array = [ 1,1,1,3,3,3,4,4,5,1,1,1,3,3,4,4,2,2 ];
        
        foreach($array as $key => $value){
            
            if($key && $array[$key-1] != $value){
                $gid++; 
            }
    
    
            
            $array2[$gid][] = $value;
        }
        
        print_r($array2);
    Harbi helal olsun hocam Tam istediğim gibi oldu bravo.