代码之家  ›  专栏  ›  技术社区  ›  user6098620

对使用OR、str\U replace、array或什么感到困惑?

  •  -3
  • user6098620  · 技术社区  · 7 年前

    我有一个密码可以找到单词 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; ?>
    

    有时我没有 阿拉巴马州 密歇根州 在…内 1美元 但我有 AL MI 阿拉巴马州 密歇根州 如果那样的话,我想换一个 AL公司 密歇根州 具有 阿拉巴马州 密歇根州 。如果我想在上面的代码中编写简洁的代码,我应该怎么做?我有很多单词需要匹配和关联,所以请给我一个干净的代码。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ScaisEdge    7 年前

    您可以使用regexp作为

      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; ?>