現在の位置: ホーム> 最新記事一覧> array_diff()を使用して、特殊文字で文字列配列を処理します

array_diff()を使用して、特殊文字で文字列配列を処理します

M66 2025-06-06

PHPでは、 array_diff()は、最初の配列に存在するが他の配列には存在する2つ以上の配列と戻り値を比較するための非常に実用的な機能です。特殊文字( @などなど)を含む文字列配列を処理すると、この関数を使用して、微分セット比較を簡単に実装することもできます。

この記事では、array_diff()の基本的な使用法を紹介し、例を使用して、特殊文字を含む文字列配列を処理する方法を示します。

1. array_diff()の基本的な構文

array_diff(array $array1, array ...$arrays): array

この関数は、 $ array1を1つ以上の配列と比較し、 $ array1にのみ存在し、他の配列には表示されない値を返します。

注:比較は値に基づいておりゆるい比較(==)を使用し、キー名を比較しません。

2。特殊文字を含む配列の違いセットの問題

次のコンテンツに2つの配列があるとします。

 $array1 = ['apple', 'banana', 'cherry@', 'date#', 'egg&'];
$array2 = ['banana', 'date#', 'fig$', 'grape'];

$ array1に存在するが、特殊文字が含まれていても、 $ array2に存在しない要素を見つけたいです。

array_diff()を直接使用できます。これは、文字列を比較するときにPHPが特殊文字の特別な処理を行わないため、正常に比較できるためです。

3。サンプルコード

<?php

$array1 = ['apple', 'banana', 'cherry@', 'date#', 'egg&'];
$array2 = ['banana', 'date#', 'fig$', 'grape'];

$result = array_diff($array1, $array2);

echo "微分結果:\n";
print_r($result);

// これらの違い要素のいずれかを生成したい場合 URL クエリパラメーターフォーム:
$queryString = http_build_query(['items' => array_values($result)]);

echo "\n次のリンクを使用して、クエリ結果ページにアクセスできます:\n";
echo "https://m66.net/show_diff.php?$queryString";

?>

出力の結果は次のとおりです。

 微分結果:
Array
(
    [0] => apple
    [2] => cherry@
    [4] => egg&
)

次のリンクを使用して、クエリ結果ページにアクセスできます:
https://m66.net/show_diff.php?items%5B0%5D=apple&items%5B1%5D=cherry%40&items%5B2%5D=egg%26

4。注意すべきこと

  1. 特殊文字は、array_diff()の仕組みに影響しません。

  2. ケースの違いとの比較に対処する必要がある場合は、最初に配列内の要素を均一に処理できます( strtolower()など)。

  3. ユーザー入力から文字列配列を取得した場合は、噴射攻撃やその他の問題を防ぐために、基本的なフィルタリングとエスケープを行うことを忘れないでください。

5。実用的なアプリケーションシナリオ

  • 異なるソース(データベースやユーザーアップロードされたデータなど)の2つのデータセットを比較します。

  • 非合成データレコードを特定します。

  • キーワードフィルタリング関数を実装し、フィルタリングされた語彙ライブラリなどでカバーされていない入力コンテンツを見つけます。