>백엔드 개발 >PHP 문제 >PHP 배열에서 중복 키 값을 쿼리하는 방법

PHP 배열에서 중복 키 값을 쿼리하는 방법

PHPz
PHPz원래의
2023-04-23 10:21:57822검색

PHP 개발에서는 배열 요소의 중복된 키 값을 쿼리해야 하는 경우가 종종 있습니다. 예를 들어, 사용자가 제출한 양식 데이터를 처리할 때 제출된 모든 데이터가 고유한지 확인해야 할 수 있습니다. 이 기사에서는 PHP 언어를 사용하여 배열의 중복 키 값을 쿼리하는 방법을 소개합니다.

PHP의 배열은 키와 값 사이의 대응 관계를 저장할 수 있는 매우 일반적으로 사용되는 매우 강력한 데이터 구조입니다. 배열의 키는 정수 또는 문자열이 될 수 있으며 값은 모든 유형의 데이터가 될 수 있습니다. PHP에서는 다음 구문을 사용하여 배열을 생성할 수 있습니다.

$myArray = array('apple', 'banana', 'cherry');

위 코드는 세 개의 요소로 구성된 배열을 생성하며, 각 요소는 문자열입니다. 배열에서 각 요소에는 해당 숫자 인덱스가 있으며 배열 요소는 인덱스를 통해 액세스할 수 있습니다:

echo $myArray[0]; // 输出 'apple'
echo $myArray[1]; // 输出 'banana'
echo $myArray[2]; // 输出 'cherry'

숫자 인덱스 외에도 PHP 배열은 문자열 인덱스를 사용할 수도 있습니다. 예:

$myArray = array('name' => '张三', 'age' => 18, 'gender' => '男');
echo $myArray['name']; // 输出 '张三'
echo $myArray['age']; // 输出 18
echo $myArray['gender']; // 输出 '男'

개발 과정에서 데이터 고유성을 보장하고 데이터 중복으로 인한 오류를 방지하기 위해 배열에서 반복되는 키 값을 쿼리해야 하는 경우가 종종 있습니다. 예를 들어 사용자 이름이 동일한지 확인하기 위해 사용자 목록을 쿼리해야 할 수도 있습니다. PHP에서는 array_count_values() 함수를 사용하여 배열 요소의 발생 횟수를 쿼리하고 반복되는 요소의 수를 계산할 수 있습니다. 예:

$users = array('张三', '李四', '王五', '张三', '李四');
$result = array_count_values($users);
print_r($result);

출력은 다음과 같습니다.

Array (
    [张三] => 2
    [李四] => 2
    [王五] => 1
)

위 코드에서는 2개의 반복 요소를 포함하는 5개의 요소를 포함하는 $users 배열을 만듭니다. array_count_values() 함수를 호출하면 배열의 각 요소를 키로 사용하고 발생 횟수를 값으로 사용하여 새 배열을 형성할 수 있습니다. 이 새 배열의 출력에서 ​​키는 원래 데이터 배열의 요소이고 값은 이 요소가 원래 배열에 나타나는 횟수입니다.

배열에서 반복되는 모든 요소를 ​​쿼리하려면 array_keys() 함수를 사용하여 아래와 같이 결과 배열에서 값이 2(1보다 큰 발생)인 키를 가져올 수 있습니다.

$users = array('张三', '李四', '王五', '张三', '李四');
$result = array_count_values($users);
$repeated = array_keys($result, 2);
print_r($repeated);

The 출력 결과는 다음과 같습니다:

Array (
    [0] => 张三
    [1] => 李四
)

위 코드에서는 array_keys() 함수를 사용하여 배열에 있는 모든 중복 요소의 키인 값 2를 가진 키를 가져옵니다. 이 새 배열의 출력에 있는 각 요소는 중복 요소입니다.

실제 개발에서는 중복 요소를 배열에서 제거하거나 잘못된 데이터로 표시하는 등 더 유연하게 처리해야 할 수도 있습니다. 다음은 foreach 루프를 사용하여 배열을 순회하고 중복 요소를 표시하는 예입니다.

$users = array('张三', '李四', '王五', '张三', '李四');
$counts = array();
foreach ($users as $user) {
    if (isset($counts[$user])) {
        $counts[$user]++;
    } else {
        $counts[$user] = 1;
    }
}
foreach ($users as &$user) {
    if ($counts[$user] > 1) {
        $user = $user . '(重复)';
    }
}
print_r($users);

출력은 다음과 같습니다.

Array (
    [0] => 张三(重复)
    [1] => 李四(重复)
    [2] => 王五
    [3] => 张三(重复)
    [4] => 李四(重复)
)

위 코드에서는 먼저 빈 배열 $counts를 정의하여 각 요소의 수를 기록합니다. 원래 배열의 요소 발생 횟수입니다. 그런 다음 원래 배열 $users를 반복합니다. $counts 배열에 요소가 이미 있으면 발생 횟수에 1을 추가하고, 그렇지 않으면 발생 횟수를 1로 설정합니다. 마지막으로 원래 배열 $users를 다시 순회하고 $counts 배열에 요소가 1개 이상 나타나면 중복 요소로 표시됩니다.

위의 방법 외에도 PHP에는 참고할 수 있는 배열 처리 함수가 많이 있습니다. 예를 들어, array_unique() 함수는 배열에서 중복된 요소를 제거하는 데 사용할 수 있고, array_diff() 함수는 중복되지 않은 요소를 찾는 데 사용할 수 있습니다.

간단히 말하면, 배열에서 중복된 키 값을 쿼리하는 것은 PHP 개발의 일반적인 요구 사항입니다. array_count_values() 함수를 사용하면 배열의 각 요소가 중복된 요소를 처리할 수 있는 횟수를 빠르게 얻을 수 있습니다.

위 내용은 PHP 배열에서 중복 키 값을 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.