Как найти строковые элементы в другой строке и удалить их в PHP - PullRequest
1 голос
/ 03 мая 2010

Например:

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

Результат должен быть:

ResultString='apple,nature,grass'

Ответы [ 3 ]

2 голосов
/ 03 мая 2010
$first = explode(',',$firstString);
$second = explode(',',$secondString);

Теперь у вас есть массивы, и вы можете делать с ними все, что захотите.

$result = array_diff($first, $second);
0 голосов
/ 03 мая 2010

это простой способ (наверняка должны быть более эффективные):

Прежде всего, вы можете захотеть разделить строки, разделенные запятой, и поместить их в массив (используя функцию explode ):

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

Затем вы можете зациклить первый массив и проверить, содержит ли он слова второго, используя функцию in_array (если так, удалите его с помощью функции unset ):

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

Наконец, вы можете создать новую строку с результатом, используя функцию implode :

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

Вот и все: D

0 голосов
/ 03 мая 2010

Я уверен, что есть функция, которая может это сделать, но вы всегда можете разбить строки и сделать foreach для каждой из них, а также сравнить некоторые строки и построить новую строку. Вы также можете разбить вторую строку, создать регулярное выражение и выполнить preg_replace для замены значений в строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...