PHP에서 Array_Diff ()는 첫 번째 배열에 존재하지만 다른 배열에는 존재하지 않는 두 개 이상의 배열 및 리턴 값을 비교하는 매우 실용적인 기능입니다. 특수 문자 (예 : @ , # , % , & 등)가 포함 된 문자열 배열을 처리 할 때이 기능을 사용하여 차등 세트 비교를 쉽게 구현할 수 있습니다.
이 기사는 Array_Diff () 의 기본 사용법을 소개하고 예제를 사용하여 특수 문자가 포함 된 문자열 배열을 처리하는 방법을 보여줍니다.
array_diff(array $array1, array ...$arrays): array
이 함수는 $ array1을 하나 이상의 배열과 비교하고 $ array1 에만 존재하며 다른 배열에는 나타나지 않는 값을 반환합니다.
참고 : 비교는 값을 기반으로 하며 느슨한 비교 (==)를 사용하며 키 이름을 비교하지 않습니다.
다음 내용이있는 두 개의 배열이 있다고 가정합니다.
$array1 = ['apple', 'banana', 'cherry@', 'date#', 'egg&'];
$array2 = ['banana', 'date#', 'fig$', 'grape'];
$ array1 에 존재하지만 특수 문자가 포함되어 있어도 $ array2 에는 존재하지 않는 요소를 찾으려고합니다.
PHP는 문자열을 비교할 때 특수 문자에 대한 특수 처리를 수행하지 않으며 여전히 정상적으로 비교할 수 있기 때문에 Array_Diff ()를 직접 사용할 수 있습니다.
<?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
특수 문자는 array_diff () 의 작동 방식에 영향을 미치지 않습니다.
사례 차이를 비교 해야하는 경우 먼저 배열의 요소를 균일하게 처리 할 수 있습니다 (예 : strtolower () 사용).
사용자 입력에서 문자열 배열을 얻는 경우 기본 필터링을 수행하고 탈출하여 주입 공격 및 기타 문제를 방지하십시오.
다른 소스의 두 데이터 세트 (예 : 데이터베이스 및 사용자 업로드 데이터)를 비교하십시오.
동기화되지 않은 데이터 레코드를 식별합니다.
키워드 필터링 기능을 구현하고 필터링 된 어휘 라이브러리에 의해 다루지 않은 입력 컨텐츠를 찾으십시오.