как удалить цифры из этих разделенных запятыми текстов? - PullRequest
0 голосов
/ 17 февраля 2011
web,search,web2.0,1,seo,networking,social
web,search,web2.0,3,seo,networking,social
web,search,web2.0,4,seo,networking,social

Как мне удалить 1, 3 и 4 из вышеуказанных строк ??

Ответы [ 5 ]

2 голосов
/ 17 февраля 2011
var_dump(
  implode(
    ',',
    array_filter(
      explode(',',$e),
      create_function('$a','return !is_numeric($a);')
    )
  )
);

Результат:

string(39) "web,search,web2.0,seo,networking,social"
string(39) "web,search,web2.0,seo,networking,social"
string(39) "web,search,web2.0,seo,networking,social"

Распределение:

  • expode()
    Разбить массив на токены, разделенные запятыми.
  • array_filter()
    Уберите элементы, которые вам не нужны (цифры)
  • create_function()
    Ленивый способ создания функции для выполнения фильтрации (каждый элемент передается для определения, останется он или исчезнет)
  • implode
    Напротив взрыва
2 голосов
/ 17 февраля 2011

С помощью регулярного выражения вы можете заменить ", [0-9] *,?"на "," может быть

1 голос
/ 17 февраля 2011

PHP имеет встроенный синтаксический анализатор CSV: http://php.net/manual/en/function.fgetcsv.php

Я бы порекомендовал использовать парсер, а затем выписать ваши данные обратно с помощью fputcsv ().

0 голосов
/ 17 февраля 2011

Я предполагаю, что каждая строка является строкой

$mystring="web,search,web2.0,1,seo,networking,social";
$temp = explode(",", $mystring);
$mystring="";
for($i=0;$i<count($temp);$i++) {
    if(is_int($temp[$i])==false)
$mystring+=$temp[$i];
if($i <count($temp)-1)
$mystring+=",";
}
0 голосов
/ 17 февраля 2011

Это всегда один и тот же формат?

$string = ...;
$tab = explode(',', $string);
unset($tab[3]);
$string = implode(',', $tab);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...