• 07-01-2011, 22:33:02
    #1
    Merhaba arkadaşlar elimde bir veri var.


    Ali 11 Veli
    gibi ben bu 11'den öncesini sonrasını parçalamak istiyorum

    sonuç şu şekilde olmalı

    $a=ali
    $b=11
    $c=veli

    gibi teşekkürler.
  • 07-01-2011, 22:37:50
    #2
    $trn = 'Ali 11 Veli';
    
    list($a, $b, $c) = explode(' ',$trn);
    
    echo $a.'<br>'.$b.'<br>'.$c;
    veya


    $trn = 'Ali 11 Veli';
    
    $tren= explode(' ',$trn);
    
    echo $tren[0].'<br>'.$tren[1].'<br>'.$tren[2];
  • 07-01-2011, 22:41:27
    #3
    herzaman ali sadece ali olmuyor hocam ama

    ali ayşe 15 istanbul
    ali fatma muhammet 15 ankara

    gibi gibi de olanlar var.
  • 07-01-2011, 22:44:34
    #4
    ne oldugu önemli degil explode kullanımını inceleyin derim.
  • 07-01-2011, 22:49:01
    #5
    hocam boşluklara göre parçalarsam olmuyor :S

    Mesala

    Ali Karadeniz 33 Malatya

    burada boşlukları parçalarsam
    elime
    Ali ayrı karadeniz ayrı gelecek ben
    Ali Karadeniz birlikte istiyorum
  • 07-01-2011, 22:53:13
    #6
    o zaman 33 e göre parçalayacaksın.Birde nerde kullanacaksın bunu ?
  • 07-01-2011, 23:20:27
    #7
    preg_matchla deneyin

    $str = "ali veli 49 elli";
    preg_match('@([0-9]+)@i',$str,$cikti);
    print_r(explode($cikti[1],$str));
    belki daha basit ve garantili yapılabilir, araştırmak lazım.
  • 08-01-2011, 12:55:03
    #8
    $str = array(
       'ali ayşe 15 istanbul',
       'ali fatma muhammet 15 ankara'
    );
    
    foreach($str as $s) {
       preg_match('~(\D*)\s*(\d*)\s*(\D*)~', $s, $match);
       print_r($match[1]);
    }
  • 08-01-2011, 14:46:31
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    
    $string = 'Ali 11 Veli';
    
    $split = preg_split('~([^\d]+|\d+)~', $string);
    
    print_r($split);
    
    ?>