Показать сообщение отдельно

  #1  
Старый 10.05.2010, 02:56
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
Wink

ну вы даёте

> Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.

m0Hze, кодом
PHP код:
$return str_replace($need.',','',$str); 
ты можешь удалить что надо + обрезать похожее на него, например в строке $str='1,2,3,12,13,23'; надо удалить $need='2';
В итоге будет 1,3,113,23 (откуда тут 113 оО? и почему вместо пяти чисел тут их четыре..)
Ну и, как было замечено, число в конце строки не удаляет.

WNZRS, ты вобще извращенец перевести строку в массив уже другая методика,
но зачем перебирать массив и выравнивать ключи вручную, когда есть стандарные функции?
зачем делать чтото типа
$array[$i+$minus] = $array[$i]; , если после всех операций по удалению можно заюзать, например, array_values() и взять индексный массив
(только зачем это надо, если implode() работает с ассоциативными массивами?)

Можно исправить скрипт m0Hze, например, изменив так:
было:
PHP код:
 $return str_replace($need.',','',$str); 
стало:
PHP код:
$return substr(str_replace(','.$need.',',',',','.$str.','),1,-1); 
(но в учёт того, что я не знаю, как работает str_replace на низком уровне, а разбираться лень, то для гарантии того, что будут вырезаны ВСЕ требуемые числа, даже записанные подряд, можно использовать функцию два раза сразу)
PHP код:
$return substr(str_replace(','.$need.',',',',str_replace(','.$need.',',',',','.$str.',')),1,-1); 
(тут в кавычках 2 пробела сами появляются, их убить надо )
или
PHP код:
$return substr(str_replace(array(','.$need.',',','.$need.','),',',','.$str.','),1,-1); 

Последний раз редактировалось roxblnfk; 10.05.2010 в 12:14..
 
Ответить с цитированием