PHP에서 배열을 처리 할 때는 종종 데이터를 필터링하고 정리해야합니다. 전통적으로, 우리는 이러한 작업을 수행하기 위해 루프와 조건부 판단을 사용할 수 있지만,이 관행은 부풀어 오르고 비효율적 인 코드로 이어질 수 있습니다. 코드의 가독성 및 실행 효율성을 향상시키기 위해 Array_Diff_Key () 및 Array_Filter () 와 같은 일부 내장 배열 함수를 사용할 수 있습니다.
이 기사는이 두 기능을 사용하여 PHP 데이터를 정리하고보다 간결하고 효율적인 코드를 작성하는 방법을 소개합니다.
Array_Diff_Key () 함수는 두 배열의 키를 비교하는 데 사용되며 첫 번째 배열에는 존재하지만 두 번째 어레이에는 존재하지 않는 키를 포함하는 배열을 반환합니다.
여러 키 값 쌍이 포함 된 배열이 있지만 원치 않는 키를 제거하려고합니다. Array_Diff_Key () 사용은 좋은 선택입니다. 필요한 키만 유지되는 새 배열을 반환합니다.
<?php
// 원래 배열
$data = [
'name' => 'John',
'email' => 'john@example.com',
'phone' => '1234567890',
'website' => 'https://m66.net'
];
// 제거 할 키
$keysToRemove = ['phone', 'website'];
// 사용 array_diff_key() 원치 않는 키를 제거하십시오
$filteredData = array_diff_key($data, array_flip($keysToRemove));
// 출력 결과
print_r($filteredData);
?>
Array
(
[name] => John
[email] => john@example.com
)
이 예에서는 array_diff_key ()가 $ data 배열의 키와 $ keystoremove 배열의 키를 비교하여 전화 및 웹 사이트 키를 성공적으로 제거합니다. Array_flip ()는 키를 배열의 키로 제거하도록 변환하여 Array_Diff_Key () 함수로 두 번째 매개 변수로 전달됩니다.
Array_Filter () 함수는 지정된 조건을 충족하는 배열 및 반환 요소의 요소를 필터링하는 데 사용됩니다. 이 기능을 사용하여 특정 조건을 충족하는 데이터 만 유지하는 등보다 미세한 배열 필터링을 수행 할 수 있습니다.
여러 사용자의 데이터를 저장하는 배열이 있다고 가정하고 유효한 이메일 주소 만 필터링하려면 Array_Filter ()를 사용 하여이 작업을 완료 할 수 있습니다.
<?php
// 원래 배열
$users = [
'user1' => ['name' => 'John', 'email' => 'john@example.com'],
'user2' => ['name' => 'Jane', 'email' => 'jane@invalid'],
'user3' => ['name' => 'Mark', 'email' => 'mark@valid.net'],
];
// 사용 array_filter() 유효한 사용자를 필터링하십시오
$validUsers = array_filter($users, function($user) {
return filter_var($user['email'], FILTER_VALIDATE_EMAIL) !== false;
});
// 출력 결과
print_r($validUsers);
?>
Array
(
[user1] => Array
(
[name] => John
[email] => john@example.com
)
[user3] => Array
(
[name] => Mark
[email] => mark@valid.net
)
)
이 예에서는 array_filter ()가 콜백 함수를 통해 이메일이 유효한 사용자를 필터링합니다. filter_validate_email 상수와 결합 된 Filter_var () 함수를 사용하여 각 사용자의 이메일 주소를 효율적으로 확인할 수 있습니다.
Array_Diff_Key () 및 Array_Filter ()를 사용하면 큰 배열을 처리 할 때 효율성을 향상시키는 데 도움이됩니다. 이러한 기능 자체는 C로 작성되며 순수한 PHP 루프보다 빠릅니다. 동시에 클리너를 작성하고 읽기 쉬운 코드를 작성하는 데 도움이 될 수 있습니다.
수동 루핑 트래버스 및 판단을 피하면 코드 복잡성을 줄이고 잠재적 오류를 줄이며 코드를 더 쉽게 유지할 수 있습니다.
Array_Diff_Key ()를 사용하면 배열에서 불필요한 키를 제거하고 데이터를 깔끔하게 유지할 수 있습니다.
Array_Filter ()는 조건에 따라 배열에서 요소를 필터링하는 데 도움이되며 조건을 충족하는 요소 만 유지됩니다.
두 기능 모두 코드의 효율성을 향상시키고, 중복 루프를 피하고, 코드를보다 간결하고 읽기 쉽게 만들 수 있습니다.
이 두 가지 기능을 사용하면 배열 데이터를 쉽게 처리하고 PHP 프로그래밍 기술을 향상 시키며 효율적이고 유지하기 쉬운 코드를 작성할 수 있습니다.