Мой вопрос из разряда "Тупой НУБ", к троллингу готов) Подскажите, пжлст, как в моем случае можно записать функцию, чтобы она была более гибкая и переводила не только конкретный текст? Например есть 4 типа значений: Мужской, Женский, Красивые дети, Какой-то другой текст. Есть такая функция: Код (Text): function my_map_data( $data ) { $map = array( 'Мужской' => 'Для мужчин', 'Женский' => 'Для женщин', ); return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data; } В данном случае функция переводит только то, что указано дословно. А мне нужно так: Если "Женский", то записать "Для женщин". Если "Мужской", то записать "Для мужчин". Если содержится слово "дети", то записать "Для детей". Если любой другой текст, то ничего не записывать.
ну дополнить массив однако PHP: $map = array( 'Мужской' => 'Для мужчин', 'Женский' => 'Для женщин', 'Детский' => 'Для детей', ); + у вас регистрозависмая проверка ... то есть для мужской или мУжской не сработает
Ну это то понятно, что дополнить. Вопрос немного в другом. Не обязательно "Детский", могут быть разные варианты. Поэтому нужно сделать так, как я указал - если строка содержит слово "детский" (не путать с равно "детский"), то записать как "Для детей", а если нет подходящего варианта, то ничего не записывать.
Правильно и я понимаю? Вот так надо написать? А то мои знания пхп приблизительно равны нулю) Код (Text): function my_map_data( $data ) { if ($map = array( 'Мужской' => 'Для мужчин', 'Женский' => 'Для женщин', )); { return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data; } if (strpos ($data, "дети") !== false) { return "Для детей"; } }
Вот написал так, но не сработало. Код (Text): function my_map_data_Probnik( $data ) { if (strpos ($data, "дети") !== false) { return "Для детей"; } if ($map = array( 'Мужской' => 'Для мужчин', 'Женский' => 'Для женщин', )); {return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data;} } Видимо с синтаксисом проблемы. Можно набраться наглости и попросить подправить?
у меня всё работает. Ты функцию хоть вызвал? --- Добавлено --- PHP: function my_map_data_Probnik( $data ) { if (strpos ($data, "дети") !== false) { return "Для детей"; } $map = [ 'Мужской' => 'Для мужчин', 'Женский' => 'Для женщин' ]; return key_exists( $data, $map ) ? $map[ $data ] : $data; } echo my_map_data_Probnik ("крадети"); Посмотри, это выводит "Для детей"?
Тут реги на ум приходят, дабы исключить лишние проверки и расширить диапазон возможных вариантов входных данных. Ведь еще и регистр надо учитывать. @Илья_2712 посмотри регулярные выражения в php https://www.php.net/manual/ru/ref.pcre.php
Вот такую ошибку выдает: Import Errorкрадети{"code":"internal_server_error","message":" \u041d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0447\u0442\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p> \u0423\u0437\u043d\u0430\u0439\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0432 WordPress.<\/a><\/p>","data":{"status":500},"additional_errors":[]} Ну и плюс ко всему сайт сломался. Сервер заблокировал мне доступ к базе данных. Чет не то намудрил)