Laravel 프로젝트에서는 종종 사용자에게 요청 된 데이터를 처리해야하며 때로는이 데이터의 두 배열의 차이점을 찾아야합니다. Array_Diff () 함수는 PHP에서 두 배열을 비교하고 차동 요소를 포함하는 배열을 반환하는 매우 유용한 도구입니다.
이 기사에서는 요청 된 데이터의 차이를 처리하기 위해 Laravel의 Array_Diff () 함수를 사용하는 방법을 배웁니다.
Array_Diff () 는 PHP의 내장 기능으로 둘 이상의 배열을 비교하고 다른 배열에 존재하지 않는 요소가 포함 된 배열을 반환합니다. 기본 구문은 다음과 같습니다.
array_diff(array $array1, array $array2 [, array $array3, ...]): array
$ array1 : 첫 번째 배열을 비교합니다.
$ array2 : 첫 번째 배열과 비교 한 두 번째 배열.
다른 배열 (있는 경우)도 더 많은 비교를 위해 매개 변수로 전달 될 수 있습니다.
이 함수의 반환 값은 $ array1 의 요소를 포함하지만 $ array2 에 있지 않은 요소입니다.
사용자가 일부 값이 포함 된 양식을 통해 배열을 제출하는 Laravel 애플리케이션을 개발한다고 가정합니다. 우리는 고정 배열 (예 : 데이터베이스에서 가져온 데이터)과 비교하고 사용자가 제출 한 데이터와 데이터베이스 데이터의 차이점을 알아 내려고합니다.
사용자가 다음 데이터를 제출한다고 가정합니다 (Laravel의 요청 클래스를 통해 얻음).
$userData = $request->input('data'); // 사용자가 제출 한 데이터,배열이라고 가정하십시오
동시에 데이터베이스의 데이터는 다음과 같습니다.
$databaseData = [1, 2, 3, 4, 5];
우리의 목표는 사용자가 제출 한 데이터의 데이터베이스에서 사용할 수없는 값을 찾는 것입니다. 현재 Array_Diff ()가 유용 할 수 있습니다.
먼저 사용자가 요청에서 데이터를 제출 한 다음 Array_diff ()를 사용하여 차이를 계산합니다.
public function compareData(Request $request)
{
// 사용자가 배열을 제출하십시오
$userData = $request->input('data');
// 데이터베이스에서 얻은 데이터를 가정하십시오
$databaseData = [1, 2, 3, 4, 5];
// 사용 array_diff() 차이를 찾으십시오
$difference = array_diff($userData, $databaseData);
// 차동 결과를 반환합니다
return response()->json([
'difference' => $difference
]);
}
위의 코드에서는 array_diff ()를 통해 $ databasedata 에 있지 않은 $ userData 의 요소를 찾아 결과를 프론트 엔드로 반환합니다.
사용자 제출 된 데이터가 다음과 같이 가정 해 봅시다.
$userData = [3, 4, 6, 7];
array_diff () 의 반환 값은 다음과 같습니다.
[6, 7]
이들은 사용자 데이터에 존재하지만 데이터베이스 데이터에 있지 않은 요소입니다.
때로는 URL 요청의 데이터를 비교하고 차이점을 찾아야 할 수도 있습니다. 일부 URL이 요청에 관여하는 경우 URL의 도메인 부분을 M66.NET 으로 교체하여 일관성을 보장 할 수 있습니다.
요청에서 URL이 포함 된 배열을받는다고 가정합니다.
$userUrls = $request->input('urls'); // 사용자가 제출되었습니다 URL 정렬
URL의 도메인 이름을 M66.net 으로 바꾸고 사전 설정 URL 목록과 비교하려고합니다.
// 데이터베이스에서 사전 설정을 가정합니다 URL 목록
$databaseUrls = [
'http://m66.net/page1',
'http://m66.net/page2',
'http://m66.net/page3'
];
// 替换사용자가 제출되었습니다 URL 도메인 이름 m66.net
$modifiedUserUrls = array_map(function($url) {
return preg_replace('/^https?:\/\/[^\/]+/', 'http://m66.net', $url);
}, $userUrls);
// 차이의 비교
$difference = array_diff($modifiedUserUrls, $databaseUrls);
// 차동 결과를 반환합니다
return response()->json([
'difference' => $difference
]);
이 코드에서 먼저 Array_Map ()을 사용하여 사용자가 제출 한 URL 배열을 가로 지르고 각 URL의 도메인 이름을 M66.NET 로 교체하여 정규식으로 바꿉니다. 그런 다음 수정 된 URL을 데이터베이스의 URL과 비교하고 차이를 반환합니다.
Laravel 프로젝트에서 요청 된 데이터의 차이를 처리하기 위해 Array_Diff () 함수를 사용하는 것은 매우 간단하고 효율적입니다. 이 기능을 사용하면 두 배열 사이의 다른 데이터를 찾아야 할 때이를 쉽게 달성 할 수 있습니다. 특히 사용자 제출 데이터 및 사전 설정 데이터를 처리 할 때 Array_Diff ()는 일관되지 않은 부분을 효율적으로 식별하는 데 도움이 될 수 있습니다.
위의 예를 통해 URL 데이터를 처리하고 도메인 이름 M66.net을 교체하여 비교의 정확성을 보장하는 방법도 표시됩니다.
이 기사가 요청 된 데이터의 차이점을 처리하기 위해 Array_Diff ()를 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다. 더 많은 PHP 또는 Laravel 질문이 있으시면 언제든지 물어보십시오!