>  기사  >  백엔드 개발  >  PHP8의 배열 함수: array_intersect_assoc()의 다양한 작업 예

PHP8의 배열 함수: array_intersect_assoc()의 다양한 작업 예

王林
王林원래의
2023-05-18 08:13:441457검색

PHP 언어는 웹 개발 및 서버 측 스크립트 프로그래밍에 널리 사용되는 언어입니다. 강력한 배열 기능 지원은 뛰어난 성능의 중요한 구성 요소 중 하나입니다. PHP8에서는 연관 배열을 운영할 때 더 효율적인 성능과 더 편리한 사용법을 제공하는 새로운 배열 함수 array_intersect_assoc()이 도입되었습니다. 이 기사에서는 array_intersect_assoc() 함수의 사용법을 소개하고 다양한 작업 방법과 실제 적용 시나리오를 설명하는 다양한 예제를 제공합니다.

1. array_intersect_assoc()의 기본 사용법

array_intersect_assoc() 함수는 두 개 이상의 연관 배열을 비교하고 모든 입력 배열에 동일한 키와 값을 가진 요소가 포함된 새로운 연관 배열을 반환하는 데 사용됩니다. 구문은 다음과 같습니다.

array_intersect_assoc(array1,array2,array3,...)

여기서 각 입력 매개변수는 동일한 키와 값을 찾기 위해 비교되는 연관 배열입니다. 반환 값은 모든 입력 배열과 동일한 키와 값을 가진 요소를 포함하는 새로운 연관 배열입니다. 다음은 간단한 예입니다.

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

출력은 다음과 같습니다.

Array ( [a] => red )

이는 키가 "a"인 요소만 두 입력 배열에 존재하고 동일한 값을 갖기 때문입니다.

2. array_intersect_assoc()과 array_intersect()의 차이점

array_intersect() 함수와 달리 array_intersect_assoc() 함수는 값만 비교하는 것이 아닙니다. 요소뿐만 아니라 요소를 비교하는 키도 있습니다. 따라서 키-값 쌍 관계를 보다 정확하게 감지하고 처리합니다. 이 차이점을 설명하는 예를 살펴보겠습니다. array_intersect()函数不同的是,array_intersect_assoc()函数不仅比较元素的值,而且还比较元素的键。因此,它更精确地检测和处理键值对的关系。我们来看一个例子来说明这个区别:

$array1 = array("a"=>1,"b"=>2,"c"=>3);
$array2 = array(2=>"b",3=>"a",4=>"c");
$result1 = array_intersect($array1,$array2);
$result2 = array_intersect_assoc($array1,$array2);
print_r($result1);
print_r($result2);

输出结果为:

Array ( [b] => 2 )
Array ( [a] => 1 )

可以看到,array_intersect()函数仅检测元素的值,找到相同的值"2",而array_intersect_assoc()函数不仅找到值相同的元素"2",还找到键和值都相同的元素"a"。这就是两个函数之间的区别之一。

三、多个数组的比较运算

array_intersect_assoc()函数不仅可以比较两个数组,也可以比较多个数组。下面的示例将演示如何比较三个数组:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$array3 = array("a"=>"red","b"=>"green");
$result = array_intersect_assoc($array1,$array2,$array3);
print_r($result);

输出结果为:

Array ( [a] => red )

这是因为只有键为"a"的元素在三个输入数组中都存在且值相等。

四、缺少元素的情况

如果不同输入数组中键不相等或值不相等,则不会包含在结果中。如果其中一个输入数组缺少某个键,则该键也不会被包含在结果中。例如:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","d"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

输出结果为空数组。

五、保留键名或键的排序

在默认情况下,array_intersect_assoc()函数会保留键名并保持它们在结果数组中的相对顺序。例如:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

输出结果为:

Array ( [a] => red [b] => green )

如果要按键名的字母顺序排序结果,可以使用ksort()函数,如下所示:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
ksort($result);
print_r($result);

输出结果为:

Array ( [a] => red [b] => green )

如果不保留键名,只保留元素值,则可以使用array_intersect()函数,如下所示:

$array1 = array("red","green","blue");
$array2 = array("red","blue");
$result = array_intersect($array1,$array2);
print_r($result);

输出结果为:

Array ( [0] => red [2] => blue )

六、总结

array_intersect_assoc()函数是PHP8中引入的新数组函数之一,它在关联数组的比较和操作中更精确、高效和方便。本文提供了多种示例,介绍了如何使用它进行多种运算和操作,包括基本用法、与array_intersect()rrreee

출력 결과는 다음과 같습니다. 🎜rrreee🎜보시다시피 array_intersect() 함수는 요소의 값만 감지하여 동일한 값을 찾습니다. "2", array_intersect_assoc() 함수는 동일한 값을 가진 "2" 요소를 찾을 뿐만 아니라 동일한 키와 값을 가진 "a" 요소도 찾습니다. 이것이 두 기능의 차이점 중 하나입니다. 🎜🎜3. 여러 배열의 비교 연산🎜🎜array_intersect_assoc() 함수는 두 배열을 비교할 뿐만 아니라 여러 배열을 비교할 수도 있습니다. 다음 예에서는 세 개의 배열을 비교하는 방법을 보여줍니다. 🎜rrreee🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜 이는 키가 "a"인 요소만 세 개의 입력 배열에 존재하고 동일한 값을 갖기 때문입니다. 🎜🎜4. 요소가 누락된 경우🎜🎜서로 다른 입력 배열의 키나 값이 동일하지 않으면 결과에 포함되지 않습니다. 입력 배열 중 하나에 키가 누락된 경우 해당 키는 결과에 포함되지 않습니다. 예: 🎜rrreee🎜출력 결과는 빈 배열입니다. 🎜🎜5. 키 이름 또는 키 순서 유지 🎜🎜기본적으로 array_intersect_assoc() 함수는 키 이름을 유지하고 결과 배열에서 상대적 순서를 유지합니다. 예: 🎜rrreee🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜결과를 키 이름을 기준으로 알파벳순으로 정렬하려면 아래와 같이 ksort() 함수를 사용할 수 있습니다. 🎜rrreee🎜The 출력 결과는 🎜rrreee🎜 키 이름은 유지하지 않고 요소 값만 유지하는 경우 아래와 같이 array_intersect() 함수를 사용할 수 있습니다. 🎜rrreee🎜출력 결과는 다음과 같습니다. : 🎜rrreee🎜 6. 요약🎜🎜array_intersect_assoc( ) 함수는 PHP8에 도입된 새로운 배열 함수 중 하나입니다. 연관 배열의 비교 및 ​​연산이 더욱 정확하고 효율적이며 편리해졌습니다. 이 문서에서는 다양한 예제를 제공하고 이를 사용하여 기본 사용법, array_intersect() 함수와의 차이점, 여러 배열의 비교 작업 및 누락된 요소를 포함하여 다양한 계산 및 작업을 수행하는 방법을 소개합니다. 키 이름 또는 키 순서 등 PHP 개발자의 경우 이러한 작업을 숙지하고 숙달하면 다양한 연관 배열 작업 요구 사항을 더 쉽고 효율적으로 처리할 수 있습니다. 🎜

위 내용은 PHP8의 배열 함수: array_intersect_assoc()의 다양한 작업 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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