PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの配列で部分的な値の一致を検索する方法

PHPの配列で部分一致を検索するには

PHPで配列内の値を部分一致で検索したい場合、array_filter関数を活用するのが効果的です。この関数にはコールバック関数を渡すことができ、コールバックの戻り値によって、配列に残す要素と削除する要素を柔軟に制御できます。

コールバック関数がfalseを返した要素は配列から取り除かれ、trueを返した要素だけが結果として残ります。

コード例

以下は、配列内の値に特定の文字列「xyz」が含まれているかを検索する実装例です。

$arr = array(0 => 'abc', 1 => 'def', 2 => 'ghijk', 3 => 'lmnxyz');
$results = array();
foreach ($arr as $value) {
    if (strpos($value, 'xyz') !== false) { $results[] = $value; }
}
if( empty($results) ) { echo 'No matches found.'; }
else { echo "'xyz' was found in: " . implode('; ', $results); }

実行結果

上記のコードを実行すると、次のような出力が得られます。

'xyz' was found in: lmnxyz

ポイント解説

この例では、strpos関数を使って各要素に「xyz」という文字列が含まれているかどうかを判定しています。strposは文字列が見つかった位置を返すため、厳密な比較演算子!==falseと比較することが重要です。これは、文字列が先頭(位置0)で見つかった場合にも正しく判定できるようにするためです。

また、array_filterを使えば、同じ処理をより簡潔に書くことも可能です。

$results = array_filter($arr, function($value) {
    return strpos($value, 'xyz') !== false;
});

このように、PHPではforeachループとstrposの組み合わせ、あるいはarray_filterとコールバック関数を組み合わせることで、配列内の部分一致検索を簡単に実現できます。

  1. JavaScript配列で要素を検索する方法を徹底解説!find()メソッドの使い方

    JavaScriptで配列の中から特定の要素を検索したい場面は非常に多くあります。本記事では、最もよく使われるfind()メソッドを中心に、実際に動作するサンプルコードとともに分かりやすく解説します。 find()メソッドとは find()メソッドは、配列の各要素に対して指定したテスト関数(コールバック関数)を実行し、条件を満たした最初の要素の値を返します。条件に一致する要素が存在しない場合は undefined を返します。 基本構文 arr.find(callback(element[, index[, array]])[, thisArg]) callback: 各要素をテストする関数

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に