«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2018/10/27 19:30:02  №1285621 1
Добрый вечер! Помогите, пожалуйста, с задачкой. Как сделать код проще? Не могу додуматься как сократить первый foreach(), в котором я убираю пробелы, тире и скобки
Ответы: >>1285623 >>1285900
Аноним 2018/10/27 19:30:57  №1285623 2
>>1285621
А, и еще момент. Скажите, пожалуйста, где лучше выкладывать код, чтобы не мучаться со скринами? Не могу в гитхаб, не понимаю
Ответы: >>1285675 >>1285754
Аноним 2018/10/27 20:57:12  №1285675 3
java.jpg (71, 427x604)
604x427
>>1285623
начни с того что str_replace принимает массив первым аргументом ( типичная ошибка нуба )
str_replace(["-","(",")"," "],"",$number);

во вторых, синтаксис "{$base}" - пиздец сам по себе.

зы. парсер номерв, это такая уникальная задача.... поищи готовый, уже есть 100500 вариантов
Ответы: >>1285708 >>1285900
Аноним 2018/10/27 21:49:52  №1285708 4
>>1285675
>начни с того что str_replace принимает массив первым аргументом ( типичная ошибка нуба )
О, спасибо. Я до этого сам не додумался, не знал что так можно.
Еще, как я заметил, не обязательно вводить переменную или создавать пустой массив перед использованием.

>во вторых, синтаксис "{$base}" - пиздец сам по себе.
Почему? В каком плане?

>зы. парсер номерв, это такая уникальная задача.... поищи готовый, уже есть 100500 вариантов
Погуглю, спасибо. Мне просто интересно, возможно ли это было сделать без использования str_replace(), а только используя регулярные выражения.
Ответы: >>1285719 >>1285900
Аноним 2018/10/27 22:18:10  №1285719 5
рубль.jpg (5, 360x357)
357x360
>>1285708
пустая переменная - твой слчай, если ты будешь делать продакшен то у тебя будет вариант с str_replace($this->replace_array,"",$str)
т.е. ты даешь себе же возможность расширить массив заменяемых зняений

"{$base}" = $base вообще следует избегать двойных строк, для них существует отдельная обработка и лучше делать "".$base."" пока не понимаешь как оно работает
нубы которые делают как ты жарятся в отдельном котле
Аноним 2018/10/28 01:29:12  №1285754 6
>>1285623

На ideone можно выкладывать. Там заодно и результат выполнения виден. Правда, там не работают mb-функции.

Есть и другие сайты: http://codepad.org/
https://repl.it/languages/php
pastebin

Также, если ты зарегистрирован на гитхабе (бесплатно, без СМС), то там есть отличный удобный сервис для выкладывания кода - gist.github.com. Чтобы им пользоваться, не надо знать git, просто копируешь код и сохраняешь. Попробуй.
Аноним 2018/10/28 12:39:51  №1285900 7
>>1285621

Вместо кучи str_replace лучше использовать один strtr() с массивом замен, либо один preg_replace().

Убирать foreach не требуется. Хотя можно 2 foreach объединить в один.

Вместо "{$number}" надо писать просто $number.

>>1285675

Тут стоит задача сделать самостоятельно, а не скопировать.

>>1285708

> Еще, как я заметил, не обязательно вводить переменную или создавать пустой массив перед использованием.

Обязательно. Если ты сделаешь

echo $a;

то это выдаст warning.

> Мне просто интересно, возможно ли это было сделать без использования str_replace(), а только используя регулярные выражения.

Возможно. Надо просто в регулярку добавить возможность наличия скобок, минусов и пробелов между цифрами.