Как мне избавиться от пробелов? - PullRequest
1 голос
/ 29 января 2011
$data = "google,bing,searchengine,seo,search";

$exp = explode(",",$data);

$filtr = array("google","bing");

$fdat = str_replace($filtr,"",$data);

$clean = implode(",",$fdat);

echo $clean;

это выдает пут ,,searchengine,seo,search

Как мне избавиться от первых двух пустых запятых?

Ответы [ 4 ]

6 голосов
/ 29 января 2011

Лучше получите разницу ваших разбитых массивов $exp минус $filtr:

$clean = implode(',', array_diff($exp, $filtr));

Это также исключает вероятность того, что вы удалите только подстроку из другого слова, как при удалении car из bike,car,carpet должно получиться bike,carpet, а не bike,pet.

И если вы хотите разрешить пробелы до и после каждого слова, рассмотрите возможность использования trim и preg_split:

$exp = preg_split('/\s*,\s*/', trim($data));

trim удалит все предшествующие и конечные пробелы, а шаблон для preg_split также разрешает пробелы вокруг запятой.

0 голосов
/ 29 января 2011

Было бы лучше, если бы проверять значение в цикле следующим образом:

$data = "google,bing,searchengine,seo,search";
$exp = explode(",",$data);
$filtr = array("google","bing");

foreach($exp as $k => $v)
{
    if(in_array($v,$filtr))
    {
        unset($ext[$k]);
    }
}
$clean = implode(",",$ext);
echo $clean;
0 голосов
/ 29 января 2011

Ваш фрагмент кода также может выглядеть следующим образом:

$data = "google,bing,searchengine,seo,search";

$exp = explode(",",$data);

$filtr = array("google","bing");

foreach ($exp as $key => $item) {
  if (in_array($key, $filtr)) unset($exp[$key]);
}

$clean = implode(",",$exp);

echo $clean;

Это полезно, когда в $ data мало элементов.Для больших массивов потребуется оптимизация.

0 голосов
/ 29 января 2011

Я получаю сообщение об ошибке при попытке этого кода, который вы сделали. Вы можете использовать следующее для удаления Google & Bing (которые находятся в массиве) из строки, разделенной запятой:

$data = "google,bing,searchengine,seo,search";<br> $exp = explode(",",$data);<br> $filtr = array("google","bing");<br> $diff = array_diff($exp, $filtr);<br> $clean = implode(",",$diff);<br> echo $clean;

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