Aynı Verileri Silmek

0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Aşağıdaki örnekte sadece en son veri siliniyor. preg_match ile bulunan tüm verileri silmek için nasıl bir ekleme yapmam gerekiyor ?

PHP:
<?

$text = "test1 ab ss ac test2 ab bb ac test3";

preg_match_all("#ab(.*?)ac#si",$text,$cikti);

$say = count($cikti[0]);

echo $say . "\n";

for($x=0;$x<$say;$x++) {

$sil = $cikti[0][$x];

$a = Array($sil);
$a1 = Array("");
$a2 = str_replace($a,$a1,$text);

}

echo $a2;

?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
OnurSQL array_unique aynı olan veriler için geçerliymiş fakat benim preg_match ile aldığım verinin içeriği değişik. Bu şekilde de kullanılabilir mi ?

Aşağıdaki şekilde yapabiliyorum :) Biraz daha uğraşıp o dizileri döndüreyim.

PHP:
$text = "test1 ab ss ac test2 ab bb ac test3 ab yy ac test4";

preg_match_all("#ab(.*?)ac#si",$text,$cikti);


$say = count($cikti[0]);
echo $say . "\n";

for($x=0;$x<$say;$x++) {

$dizi = $cikti[0][0];
$dizi2 = $cikti[0][1];
$dizi3 = $cikti[0][2];

$a = array($dizi,$dizi2,$dizi3);
$a1 = array("");
$a2 = str_replace($a,$a1,$text);

}

echo $a2;
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
Mantik hatalari var kodda, zaten for ile donduruyorsun neden loop un her adiminda 0 1 2 islemini yapmaya kalkiyorsun. Dondurmenin amaci zaten adim adim gitmektir. Space e gor explode a edip array_unique alip, gene space e gore implode edersen istedigini 3 satirda yaparsin.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Aşağıdaki şekilde [0] => Array bölümünü tamamen yok edip sonucu test1 test2 test3 test4 şeklinde yazdırmam lazım. [0] => Array olan kısımın sayısı ve içeriği değişken explode veya array_unique 'yi nasıl kullanabilirim ?

PHP:
$text = "test1 ab ss ac test2 ab bb ac test3 ab yy ac test4";

preg_match_all("#ab(.*?)ac#si",$text,$cikti);

print_r ($cikti);


Array
(
    [0] => Array
        (
            [0] => ab ss ac
            [1] => ab bb ac
            [2] => ab yy ac
        )

    [1] => Array
        (
            [0] =>  ss
            [1] =>  bb
            [2] =>  yy
        )

)
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
o zaman preg_replace()
preg match + str_replace yerine o isini gorur.
 
0
Onaylı Üye
Üye
Katılım
11 Mayıs 2007
Mesajlar
3,749
Tepki puanı
61
Konum
Antalya
valla indexof kodu yok sanırım bu php de onun için boşu boşuna bir sürü fonksiyon yazmışlar php için. Aradım ama bulamadım yoksa çok basit oluyor :)
 
0
Onaylı Üye
Üye
Katılım
11 Mayıs 2007
Mesajlar
3,749
Tepki puanı
61
Konum
Antalya
Kod:
        string[] dizi1 = {"test1","ab","ss","ac","test2","ab","bb","ac","test3","ab","yy","ac","test4"};
        string[] dizi2 = {"ab", "ss", "ac" ,"bb" , "yy" };

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (string deger in dizi1)
            {
                if (Array.IndexOf(dizi2, deger) == -1)
                {
                    listBox1.Items.Add(deger);
                }
            }
        }

dizi1 in içindekileri dizi2 de var mı diye arayıp kontrol edip listbox a ekliyor 3 satırda :) ama bu kodları php çevirirken bayağı zorlanıyorum.

@OsmanAtabey çözümü yazarsan bizde yararlanabiliriz.
 
Geri
Üst