データを定義
今回使用するテスト配列は以下のようにしました。
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に要件を満たす配列が入ります。
コメント