雑多なブログ

音楽や語学、プログラム関連の話題について書いています

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"
}