2014-01-28 5 views
1


Я пытаюсь избавиться - в строке, такой как 50-000, и вывести 50000, но не в состоянии использовать strstr. Вот код, который я пробовалPhp strstr не работает должным образом

$addr = "50-000"; 
echo $addr = strtr($addr, "-", ""); 

Любые подсказки, что происходит неправильно.

Спасибо.

+0

'str_replace' намного быстрее, чем' strtr', не то, что ему было бы, вероятно, имеет значение в real world –

+0

Для этого я упомянул об этом обсуждении http://stackoverflow.com/questions/8177296/when-to-use-strtr-vs-str-replace – pal4life

ответ

3

попробовать этот

echo str_replace("-","","50-000");

+0

Спасибо за это, но что вы предложите неправильно с strstr? Какие-либо проблемы с синтаксисом? – pal4life

+0

проверьте это для деталей: http://stackoverflow.com/questions/8177296/when-to-use-strtr-vs-str-replace –

0

Согласно manual:

string strtr (string $str , string $from , string $to) 

Если данный THRE e arguments, ... Если из и иметь разные длины, дополнительные символы в длиннее двух игнорируются. Длина str будет такой же, как и значение .

С "-" больше, чем "", символ игнорируется.
Поскольку этот вызов с тремя аргументами возвращает ту же длину строки, это может не помочь вам сократить строку с «50 000» до «50000».

Вместо этого, вы можете попробовать два-аргументы вызов, где возвращаемая длина строки может отличаться:

string strtr (string $str , array $replace_pairs) 

Э.Г.

$addr = "50-000"; 
echo $addr = strtr($addr, array("-"=>"")); 
// returns "50000" 

В случае, если вы заинтересованы, чтобы узнать больше о strtr() и str_replace():
PHP strtr vs str_replace benchmarking
When to use strtr vs str_replace?

Смежные вопросы