Başka bir dize dize öğeleri bulmak ve PHP bunları kaldırmak için nasıl

3 Cevap php

By example:

FirstString='apple,gold,nature,grass,class'
SecondString='gold,class'

Sonuç olmalıdır:

ResultString='apple,nature,grass'

3 Cevap

Bu kolay bir yolu (kesin daha verimli olanlar olmalı) olduğunu:

Her şeyden önce, bu koma ayrılmış dizelerini ayırmak ve (explode fonksiyonunu kullanarak) bir diziye koymak isteyebilirsiniz:

$array1 = explode(',' $firstString);
$array2 = explode(',' $secondString);

Sonra döngü ilk dizi can ve kontrol edip o in_array fonksiyonunu (eğer öyleyse, unset fonksiyonunu kullanarak silmek) kullanarak ikinci bir içeriği kelimeler:

// loop
foreach( $arra1 as $index => $value){
    if( in_array ( $value , $array2 ) )
        unset($array1[$index]); // delete that word from the array
}

Son olarak, implode fonksiyonunu kullanarak sonuç ile yeni bir dize oluşturabilirsiniz:

$result = implode(',' , $array1);

D: İşte bu

$first = explode(',',$firstString);
$second = explode(',',$secondString);

Şimdi diziler var ve onlarla ne istersen yapabilirsin.

$result = array_diff($first, $second);

Ben bunu bir işlevi vardır eminim ama her zaman dizeleri kırmak ve her biri bir foreach yapması ve bazı dize karşılaştırır ve yeni bir dize inşa olabilir. Ayrıca ayrı, ikinci dize kırmak ve düzenli bir ifade oluşturmak ve dize değerleri değiştirmek için bir preg_replace yapabilirdi.