>  기사  >  백엔드 개발  >  PHP의 두 배열에서 동일한 요소 삭제

PHP의 두 배열에서 동일한 요소 삭제

王林
王林원래의
2023-05-19 19:29:36588검색

PHP는 다양한 데이터 처리 및 관리 기술을 지원하는 널리 사용되는 서버 측 개발 언어입니다. 그 중 배열은 PHP 프로그래밍의 중요한 부분이며 다양하고 복잡한 데이터 구조와 요소 컬렉션을 나타낼 수 있습니다. 여러 요소를 포함하는 두 개의 배열 A와 B가 있고 함수를 구현하고 싶다고 가정합니다. A와 B에서 동일한 요소를 삭제합니다. 즉, A 또는 B에 나타나는 요소만 유지하고 둘 다는 유지하지 않습니다. 아래에서는 PHP를 사용하여 이 기능을 구현하는 방법을 소개합니다.

1. 배열 기본

PHP에서 배열은 여러 값 또는 키-값 쌍을 저장할 수 있는 정렬된 데이터 구조입니다. 배열에 대한 일반적인 작업에는 추가, 삭제, 순회 및 정렬이 포함됩니다. 다음은 일반적으로 사용되는 배열 함수입니다.

• array(): 배열 변수를 정의합니다.
• array_push(): 배열 끝에 하나 이상의 요소를 추가합니다.
• array_pop(): 배열에서 요소를 제거합니다.
• array_shift(): 배열의 헤드에서 요소를 제거합니다.
• array_unshift(): 배열의 헤드에 하나 이상의 요소를 추가합니다.
• array_slice(): 하위 컬렉션을 추출합니다.
• array_merge(): 두 개 이상의 배열을 병합합니다.
• array_splice(): 배열에서 요소를 제거하거나 삽입합니다.

2. 배열 중복 제거

동일한 요소를 삭제하는 기능을 구현하기 전에 배열에서 중복된 요소를 제거하는 방법을 고려해야 합니다. PHP는 중복 제거 작업을 구현할 수 있는 내장 함수 array_unique()를 제공합니다. 이 함수의 구문은 다음과 같습니다.

array_unique(array $array [, int $sort_flags = SORT_STRING]): array

이 중 $array 매개변수는 복제할 배열 변수를 나타내고, $sort_flags 매개변수는 정렬 방법. 동일한 값이 여러 개인 경우 중복 제거 후 첫 번째 값만 유지되며 유지된 값의 위치는 변경되지 않습니다. 다음은 예시입니다.

$a = array(1, 2, 3, 2, 4, 3);
$b = array_unique($a); // $b = [1, 2, 3, 4]

3. 동일한 요소 삭제

이제 배열 중복 제거 방법을 알았으므로 예시를 사용하여 동일한 요소를 삭제하는 방법을 보여드리겠습니다. 요소가 동일한 유형이고 결정되지 않은 수의 중복 요소가 있는 두 개의 배열 A와 B가 있다고 가정합니다. 우리는 두 개의 배열을 매개변수로 취하고 하나의 배열에만 존재하는 요소, 즉 A와 B에서 동일한 요소를 제거하는 요소를 포함하는 배열을 반환하는 diff() 함수를 구현하려고 합니다.

방법 1: array_diff() 함수 사용

PHP는 둘 이상의 배열 간의 차이를 반환할 수 있는 array_diff() 함수를 제공합니다. 이 함수의 구문은 다음과 같습니다:

array_diff(array $array1, array $array2 [, array $...]): array

이 함수에 의해 반환된 배열에는 $array1에는 있지만 다음에는 없는 모든 요소가 포함되어 있습니다. $배열2. 여러 배열이 제공되면 반환된 배열에는 다음 배열에 없는 요소가 포함됩니다. 예는 다음과 같습니다.

$a = array(1, 2, 3, 4, 5);
$b = array(4, 5, 6, 7);
$result = array_diff($a, $b); // $result = [1, 2, 3]

이 함수의 결과를 A와 B에 적용하여 하나의 배열에만 존재하는 요소를 얻을 수 있습니다.

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $diff_a = array_diff($unique_a, $unique_b);
    $diff_b = array_diff($unique_b, $unique_a);
    return array_merge($diff_a, $diff_b);
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

여기서 먼저 array_diff() 함수를 사용하여 두 개의 차이점을 얻을 수 있습니다. 배열 세트를 만든 다음 차이점을 결합할 수 있습니다.

방법 2: foreach 루프 사용

내장 함수를 사용하는 것 외에도 두 배열을 순회하여 동일한 요소를 삭제할 수도 있습니다. 구체적으로, 먼저 두 배열의 중복을 제거한 다음 배열 중 하나를 반복하고 그 배열의 각 요소에 대해 해당 요소가 다른 배열에 없으면 결과 배열에 요소를 추가할 수 있습니다. 예는 다음과 같습니다.

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $result = array();
    foreach ($unique_a as $x) {
        if (!in_array($x, $unique_b)) {
            $result[] = $x;
        }
    }
    foreach ($unique_b as $y) {
        if (!in_array($y, $unique_a)) {
            $result[] = $y;
        }
    }
    return $result;
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

여기에서 foreach 루프를 사용하여 배열을 반복하고 각 요소에 대해 in_array() 함수를 사용하여 해당 요소가 다른 배열에 있는지 확인한 다음 그렇지 않으면 결과 배열 중간에 추가할 수 있습니다.

4. 요약

PHP는 배열이 중요한 구성 요소인 강력한 프로그래밍 언어입니다. 이 기사에서는 내장 함수 사용 및 배열 순회를 포함하여 PHP를 사용하여 두 배열의 동일한 요소를 삭제하는 방법을 소개합니다. 우리는 최상의 결과를 얻기 위해 실제 필요에 따라 다양한 방법을 선택할 수 있습니다. 이 기사가 독자들이 PHP 배열의 기본 사용법을 이해하는 데 도움이 되기를 바랍니다.

위 내용은 PHP의 두 배열에서 동일한 요소 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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