|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
ну вы даёте
> Есть таблица со строкой 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..
|