PHPで配列を中身を検索するには

この記事は約2分で読めます。

データを定義

今回使用するテスト配列は以下のようにしました。

PHP
$data = [
  [
    'title' => 'こんにちは',
    'created_at' => '2024-06-04 12:38:10'
  ],
  [
    'title' => 'hello',
    'created_at' => '2024-06-04 12:40:00'
  ],
]

検索する文字列などを設定を設定

PHP
$search = 'こん'
$colum = 'title'

配列をフィルタリング

array_filter関数を使って配列をフィルタリングします。

PHP
$result = array_filter($data, function($item) use ($search, $colum) {
    // strposを使って大文字小文字を区別して検索
    return strpos($item[$colum], $search) !== false;
});

フィルタリングの詳細

コールバック関数の内部で、strpos関数を使用してtitleフィールドに検索文字列が含まれているかをチェックします。

  • strpos関数strposは文字列内で部分文字列を検索し、最初に見つかった位置を返します。見つからない場合はfalseを返します。この関数は大文字と小文字を区別します。
  • !== false:この部分は、strposが見つけた位置がfalseではない(つまり、部分文字列が見つかった)ことを確認しています。

まとめ

array_filterとstrposを使用することで簡単に検索機能を制作することができました。

$resultに要件を満たす配列が入ります。

コメント

タイトルとURLをコピーしました