- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Коллеги, есть здоровенный массив PHP, в котором встречаются дубликаты значений в разных регистрах:
Москва
москва
Санкт-Петербург
санкт-петербург
СНТ
снт
Приозерск
улус
Т.е. заглавная буква может быть не только в начале, но в середине, или вообще - целиком из заглавных букв.
Мне нужно удалить дубликаты в нижнем регистре, сохранив значения, где встречается верхний регистр. Дубликата может не быть, тогда оставляем то, что есть.
Т.е. на выходе из примера я должен получить
Москва
Санкт-Петербург
СНТ
Приозерск
улус
Буду признателен за идеи как сделать это поизящней! :drink:
Не знаю насчёт изящности, но по 1 штуке можно оставить так:
Но из значений типа "МосквА" или "Санкт-петербург" оно будет выбирать первые попавшиеся, которые начинаются с заглавной буквы.
1. Всё закинуть в нижний регистр
2. Очистить от дубликатов
3. Поднять первую букву
1. Всё закинуть в нижний регистр
2. Очистить от дубликатов
3. Поднять первую букву
Не получится:
СНТ
снт
по данному алгоритму не пройдет
Копируем массив в другой и переводим все в нижний регистр(в втором массиве).
Получаем строку 1 массива и записываем его в переменную темп.
Проганяем по массиву2 проверку есть ли там темп(в нижнем регистре).
Если есть - записываем темп в массив номер3
И так по всему списку.
Array ( [8] => Иваново [15] => Липецк [13] => МосКва [9] => СНТ [4] => Санкт-Петербург )
Samail, сильно. Функцию array_intersect_key вообще ни разу не пользовал, интересная вещица.
---------- Добавлено 12.04.2019 в 17:57 ----------
Вот только в этом будет косяк:
При таком массиве:
Будет
LEOnidUKG, сама функция из интернета, моя идея была в том что-бы массив сначала отсортировать с учётом регистра.
Если никто не против я свой вариант выложу:
Вот только в этом будет косяк:
Цитата:
Т.е. заглавная буква может быть не только в начале, но в середине, или вообще - целиком из заглавных букв.
Может ТС и нужно сохранить заглавную букву в середине если она там есть. Это у меня МосКва, а в настоящем массиве может заглавная и в тему.
if (mb_strlen($str,'UTF-8')<=3) - а если будет СНТО ...или Уфа?
Это он уже пусть решает :)
Если это нужно одноразово, то там можно обойтись и str_replace, думаю мало там таких значений, которые должны быть все с большой буквы.
---------- Добавлено 12.04.2019 в 18:23 ----------
Может ТС и нужно сохранить заглавную букву в середине если она там есть. Это у меня МосКва, а в настоящем массиве может заглавная и в тему.
if (mb_strlen($str,'UTF-8')<=3) - а если будет СНТО ...или Уфа?
Ну переделаем на:
Последняя редакция :)