PHP: preg_grepでパターンにマッチする要素を配列から抽出する。
preg_grepは配列の要素を絞り込むのに便利な関数だ! なんで今までこんな便利な関数を知らなかったろう・・・
preg_grep ( string $pattern , array $array , int $flags = 0 ) : array|false
$pattern
正規表現のパターンを指定
$array
検索対象の配列
$flags
PREG_GREP_INVERTを指定すると、パターンにマッチしない要素を抽出する。
使用例
サンプルコード
<?php $array = [ '2020/10/12_aaaa', '299925_bbb', '2021/04/21_bbbb', '2021/08/21_bbbb', '2021/02/21_bbbb', '2021-02-21_bbbb', '2019/11/21_cccc', 'aaaaaaa_ccc', 'hogefuga', '____________', '********', ]; $results = preg_grep('/\d{4}\/\d{2}\/\d{2}_.*/', $array); var_dump($results);
実行結果
array(5) { [0]=> string(15) "2020/10/12_aaaa" [2]=> string(15) "2021/04/21_bbbb" [3]=> string(15) "2021/08/21_bbbb" [4]=> string(15) "2021/02/21_bbbb" [6]=> string(15) "2019/11/21_cccc" }