| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
  [2011-07-11 07:38 UTC] neufeind@php.net
 Description:
------------
Maybe the existing preg_match could allow for an array to be given as $pattern. Or if not a preg_match_array() might be an alternative.
Idea is to check a string against a list of pattern. First matched pattern would return.
Test script:
---------------
<?php
  $patterns = array(
    '/\.link1$/',
    '/\.link2$/',
    '/\.link3$/',
    '/\.link4$/',
  );
  $subject = "field.link2";
  if(preg_match($patterns, $subject)) {
    // ...
  }
Expected result:
----------------
preg_match should find the first pattern that matches (if any).
Actual result:
--------------
No array-support for $pattern yet.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             | 
    |||||||||||||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 15:00:01 2025 UTC | 
Well, it seems to me that you basically could pass implode('|', $patterns) to preg_match(); that would need slightly modified $patterns, and preg_quote() for the general case, though. And of course, the given example could use a single regex with a character class. In my opinion, the feature as presented is not very useful, and under-specified (for instance, how to detect which pattern matched), and as such needs discussion on the internals mailing list[1]. Please feel free to propose the feature there. For the time being, I'm suspending this ticket. [1] <https://www.php.net/mailing-lists.php#internals>