>  기사  >  백엔드 개발  >  PHP에서 배열의 결합을 찾는 방법

PHP에서 배열의 결합을 찾는 방법

PHPz
PHPz원래의
2023-04-18 10:20:13784검색

배열은 PHP에서 매우 유용한 데이터 구조입니다. 배열의 인덱스나 키를 통해 배열의 요소에 액세스할 수 있습니다. 실제 개발 과정에서는 여러 배열의 요소를 병합하여 새로운 배열을 형성하기 위해 배열 병합 작업을 수행해야 하는 경우가 많습니다. 이 기사에서는 PHP의 배열 함수를 사용하여 배열 병합 작업을 수행하고 여러 배열의 컬렉션을 얻는 방법을 배웁니다.

1. PHP의 배열

PHP에서 배열은 동일한 유형의 데이터 집합을 저장하는 데 사용할 수 있습니다. 이 값을 통해 배열의 요소에 액세스할 수 있습니다.

다음은 PHP에서 배열을 정의하는 두 가지 방법입니다.

1. array() 함수를 사용하여 배열을 만듭니다.

$arr = array('a', 'b', 'c')

2 . [] 기호를 사용하여 배열을 만듭니다

$arr = ['a', 'b', 'c'];

PHP에서 배열은 문자열, 정수, 부동 소수점 숫자 등 모든 유형의 데이터를 저장할 수 있습니다. , 부울 값, 객체 등 또한, PHP는 아래와 같이 배열을 작동하는 데 유용한 많은 함수를 제공합니다.

2. PHP의 배열 병합 기능

PHP는 배열을 처리하는 데 매우 유용한 기능을 제공합니다. 여러 배열의 요소를 병합하는 것은 매우 일반적인 작업입니다. 다음은 PHP에서 배열 병합 작업에 사용되는 함수에 대한 소개입니다.

1.array_merge() 함수

array_merge() 함수는 두 개 이상의 배열을 하나의 배열로 병합하는 PHP의 가장 일반적인 함수입니다. . 다음은 array_merge() 함수의 사용법입니다:

$arr1 = array('a', 'b', 'c')
$arr2 = array('d', 'e', ​​​​'f' );
$ result = array_merge($arr1, $arr2);

위 코드는 $arr1 및 $arr2 두 배열을 병합하고 결과를 $result 배열에 저장합니다.

array_merge() 함수는 연관 배열이 아닌 인덱스 배열만 처리할 수 있다는 점에 유의하세요. 연관 배열을 처리해야 하는 경우 array_merge_recursive() 함수를 사용해야 합니다.

2. array_merge_recursive() 함수

array_merge_recursive() 함수는 array_merge() 함수와 유사하며 두 개 이상의 배열을 병합하는 데에도 사용할 수 있습니다. 차이점은 연관 배열을 병합할 수 있다는 것입니다.

$arr1 = array('a' => '사과', 'b' => '공');
$arr2 = array('c' => '고양이', 'd' => 'dog');
$result = array_merge_recursive($arr1, $arr2);

위 코드는 두 개의 연관 배열 $arr1과 $arr2를 병합하고 결과를 $result 배열에 저장합니다.

array_merge_recursive() 함수는 배열을 재귀적으로 병합하며, 배열에 다른 배열이 중첩되어 있어도 병합 작업이 올바르게 수행될 수 있다는 점에 유의하세요.

3.array_combine() 함수

array_combine() 함수는 두 배열을 연관 배열로 결합할 수 있습니다. 여기서 첫 번째 배열의 값은 연관 배열의 키 값으로 사용되고 두 번째 배열의 값은 사용됩니다. 연관 배열 요소 값으로. 다음은 array_combine() 함수의 사용법입니다:

$keyArr = array('a', 'b', 'c');
$valArr = array('apple', 'ball', 'cat');
$ result = array_combine($keyArr, $valArr);

위 코드는 키 이름이 $a, $b, $c이고 해당 값이 $apple, $인 연관 배열을 생성합니다. 공, $cat.

4.array_replace() 함수

array_replace() 함수는 키 이름을 기반으로 배열 병합 작업을 수행하는 데 사용할 수 있습니다. 두 개 이상의 배열 요소를 하나의 배열로 결합하고 키 값을 동일한 이름으로 대체합니다. 키가 배열 중 하나에만 나타나는 경우 키 값은 대체되지 않습니다. 다음은 array_replace() 함수의 사용법입니다:

$arr1 = array('a' => 'apple', 'b' => 'ball');
$arr2 = array('b' => ; ' bat', 'c' => 'cat');
$result = array_replace($arr1, $arr2);

위 코드는 두 개의 연관 배열 $arr1 및 $arr2를 병합하고 For 키를 대체합니다. 값이 $b인 요소는 $bat로 바꿉니다.

5. array_intersect() 함수

array_intersect() 함수는 여러 배열의 교차점을 얻는 데 사용할 수 있습니다. 즉, 동시에 여러 배열에 나타나는 요소만 유지합니다. 다음은 array_intersect() 함수의 사용법입니다:

$arr1 = array('a', 'b', 'c')
$arr2 = array('b', 'c', 'd');
$ arr3 = array('c', 'd', 'e');
$result = array_intersect($arr1, $arr2, $arr3);

위 코드는 세 배열의 교집합을 얻습니다. $c 요소입니다.

6.array_diff() 함수

array_diff() 함수는 여러 배열의 차이 집합을 얻는 데 사용됩니다. 즉, 첫 번째 배열에 나타나고 다른 배열에는 나타나지 않는 요소만 유지됩니다. 다음은 array_diff() 함수의 사용법입니다:

$arr1 = array('a', 'b', 'c')
$arr2 = array('b', 'c', 'd');
$ arr3 = array('c', 'd', 'e');
$result = array_diff($arr1, $arr2, $arr3);

위 코드는 $arr1에만 나타나는 요소, 즉 $a 요소를 가져옵니다.

3. PHP 배열 수집 예제

위의 지식을 바탕으로 여러 배열을 결합하려는 PHP 코드를 구현할 수 있습니다. 다음은 코드 구현입니다.

function array_union(...$arrays) {

$res = array();
foreach($arrays as $arr) {
    $res = array_merge_recursive($res, $arr);
}
return $res;

}

위 코드는 변수 매개변수(...)를 사용하여 여러 배열을 나타냅니다. 함수에서는 foreach 루프를 사용하여 들어오는 모든 매개 변수 배열을 탐색하고 array_merge_recursive() 함수를 사용하여 병합한 다음 마지막으로 병합된 결과 배열을 반환합니다.

이 함수를 사용하면 다음과 같이 호출하여 여러 배열 집합을 풀 수 있습니다.

$arr1 = array('a' => 'apple', 'b' => 'ball' );
$arr2 = array('b' => '박쥐', 'c' => '고양이', 'd' => '개');
$arr3 = array('c' => ; '고양이 ', 'd' => 'deer', 'e' => 'elephant');
$result = array_union($arr1, $arr2, $arr3);

위 코드는 세 개의 연관 배열이 병합됩니다. 모든 요소를 ​​포함하는 단일 연관 배열이 반환됩니다.

요약

배열은 PHP에서 매우 중요한 데이터 구조입니다. 컬렉션을 얻기 위해 여러 배열을 병합해야 하는 경우가 많습니다. 이 기사에서는 array_merge(), array_merge_recursive(), array_combine(), array_replace(), array_intersect() 및 array_diff()를 포함하여 PHP의 몇 가지 유용한 배열 함수를 소개합니다. 또한 여러 배열의 합집합을 찾는 함수도 구현했습니다. 독자는 자신의 필요에 따라 배열 작업을 수행하는 데 적합한 기능을 선택할 수 있습니다.

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

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