Не знаете, как использовать OR, str_replace, array или что-то еще?

У меня есть код, который находит слова Alabama и Michigan внутри $l и возвращает условие if:

<?php if (trim($l) == "Alabama" || trim($l) == "Michigan"): ?>
   <a href = "http://www.example.com/"><?= $l ?></a>
 <?php else: ?>
   <a href = "http://www.example.com/"></a>
<?php endif; ?>

Иногда у меня нет Alabama и Michigan внутри $l, но у меня есть AL и MI, которые связаны с Alabama и Michigan, и в этом случае я хочу заменить AL и MI на Alabama и Michigan. Если я хочу сделать это внутри приведенного выше кода, чтобы написать чистый и короткий код, как мне это сделать? У меня есть намного больше слов, чтобы сопоставить и связать их вместе, поэтому, пожалуйста, дайте мне чистый код.

so please give me a clean code - так работает SO. Мы не пишем ваш код за вас. Вам придется написать это самостоятельно, и если это не сработает, вы можете спросить об этом.
kscherrer 13.03.2018 10:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете использовать регулярное выражение как

  if (preg_match('(Michigan|Alaska|MI|AL)', $l) === 1) {

    ........

   } 

в твоем случае

<?php if (preg_match('(Michigan|Alaska|MI|AL)', $l) === 1): ?>
   <a href = "http://www.example.com/"><?= $l ?></a>
 <?php else: ?>
   <a href = "http://www.example.com/"></a>
<?php endif; ?>

или для замены

<?php 
  $short = ["MI", "AL"];
  $long   = ["Michigan", "Alaska"];

  $newl = str_replace($short, $long, $l);
?>
<?php if (preg_match('(Michigan|Alaska)', $newl) === 1): ?>

   <a href = "http://www.example.com/"><?= $newl ?></a>
 <?php else: ?>
   <a href = "http://www.example.com/"></a>
<?php endif; ?>

Вы упускаете ту часть, где пользователь хочет заменить, например, AL на Alabama.

Anwar 13.03.2018 10:10

Допустим, у меня есть «Монтгомери, -AL» в «$ l», тогда ваш код должен возвращать «Алабама» для «$ l».

user6098620 13.03.2018 10:12

@AnwarNairi ... замена бесполезна ... регулярное выражение может проверять наличие MI и AL напрямую, без замены ... мне кажется, что использование регулярного выражения без замены кажется намного более ясным и чистым

scaisEdge 13.03.2018 10:12

@Smith, я не понимаю .. самая сложная часть для вас - это замена строки .. ??? дай мне знать

scaisEdge 13.03.2018 10:14

Да, точно, проблема в замене

user6098620 13.03.2018 10:18

это очень близко, но обновите свой ответ, заменив «Алабама» на «Монтгомери, -AL» целиком, а не только на «AL»

user6098620 13.03.2018 10:28

это не служба кодирования .. и глядя на ваш исходный вопрос.,. нет ссылки на ваши последние комментарии ... .. в вашем OP вы говорите только о том, что измените КОД состояния с именем состояния .. не другие .. вы должны попробовать себя создать строку, которая вам нужна .. не спрашивайте других написать код для вас ..

scaisEdge 13.03.2018 10:38

Хорошо, я приму твой отказ и задам этот вопрос в другой раз. Благодарность

user6098620 13.03.2018 10:40

Другие вопросы по теме