배열 array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_diff — 배열의 차이를 계산합니다.


설명

array_diff(array $array, array ...$arrays): array

array을 하나 이상의 다른 배열과 비교하고 다른 배열에 없는 array의 값을 반환합니다.


매개변수

array
비교할 배열
arrays
비교할 배열

반환 값

다른 배열에는 없는 array의 모든 항목을 포함하는 배열을 반환합니다. array 배열의 키는 보존됩니다.


변경 로그

버전 설명
8.0.0 이 함수는 이제 하나의 매개변수로 호출할 수 있습니다. 이전에는 두 개 이상의 매개변수가 필요했습니다.

Examples

예제 #1 array_diff() 예제

                  
<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>
                  
                

$array1의 다중 발생은 모두 동일한 방식으로 처리됩니다. 다음과 같이 출력됩니다.

Array
(
    [1] => blue
)
                

예제 #2 유형이 일치하지 않는 array_diff() 예제

(string) $elem1 === (string) $elem2인 경우에만 두 요소가 동일한 것으로 간주됩니다. 즉, string representation이 동일한 경우입니다.

                  
<?php
// This will generate a Notice that an array cannot be cast to a string.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);

// Whereas this is fine, since the objects can cast to a string.
class S {
  private $v;

  public function __construct(string $v) {
    $this->v = $v;
  }

  public function __toString() {
    return $this->v;
  }
}

$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];

$result = array_diff($source, $filter);

// $result now contains one instance of S('a');
?>
                  
                

대체 비교 함수를 사용하려면 array_udiff()를 참조하십시오.


메모

참고: 이 함수는 n차원 배열의 한 차원만 검사합니다. 물론 array_diff($array1[0], $array2[0]);를 사용하여 더 깊은 차원을 확인할 수 있습니다.


기타