> 백엔드 개발 > PHP 문제 > PHP 배열을 병합할 때 키를 변경하지 않고 유지하는 방법

PHP 배열을 병합할 때 키를 변경하지 않고 유지하는 방법

PHPz
풀어 주다: 2023-04-18 14:21:30
원래의
1062명이 탐색했습니다.

PHP에서 배열은 자주 조작하고 처리해야 하는 매우 일반적인 데이터 구조입니다. 배열 병합은 두 개 이상의 배열을 더 큰 배열로 결합하는 일반적인 작업 중 하나입니다. 일반적으로 배열을 병합할 때 키 이름이 수정되고 원래 키 이름이 새 키 이름으로 대체되지만, 때로는 키 이름을 변경하지 않고 배열을 병합해야 하는 경우도 있습니다. 그렇다면 키 이름을 변경하지 않고 PHP에서 배열을 병합하는 방법은 무엇입니까? 다음으로, 이 글을 통해 이를 달성하기 위한 방법과 기술을 소개하겠습니다.

1. PHP 배열 병합의 기본

PHP에서는 array_merge() 함수와 + 연산자를 사용하여 배열을 병합할 수 있습니다. 이 두 가지 방법의 구현 방법과 효과는 기본적으로 동일하지만 여전히 약간의 미묘한 차이점이 있습니다.

  1. array_merge() 함수

array_merge() 함수는 하나 이상의 배열을 하나의 배열로 병합합니다. 이 함수는 매개변수 배열의 모든 요소를 ​​포함하는 새 배열을 반환합니다. 병합 시 병합 순서에 따라 키 이름이 재배열됩니다. 즉, 다음 배열은 이전 배열의 동일한 키 이름을 대체합니다. 구체적인 구문은 다음과 같습니다.

array array_merge ( array $array1 [, array $array2 [, array $... ]] )
로그인 후 복사

샘플 코드는 다음과 같습니다.

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_merge($array1, $array2);
print_r($array3);
로그인 후 복사

작업 결과:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)
로그인 후 복사
로그인 후 복사
  1. +operator

+operator는 배열을 병합하는 데 사용할 수 있으며 원래 키 이름을 유지할 수 있습니다. 중복된 키 이름이 있는 경우 후속 배열이 이전 배열을 덮어씁니다. 구체적인 사용법은 다음과 같습니다.

$newsArray = array("title"=>"新闻标题", "content"=>"新闻内容");
$imageArray = array("title"=>"图片标题", "url"=>"http://www.example.com/image.jpg");
$finalArray = $newsArray + $imageArray;
print_r($finalArray);
로그인 후 복사

실행 결과:

Array (
    [title] => 新闻标题
    [content] => 新闻内容
    [url] => http://www.example.com/image.jpg
)
로그인 후 복사

2. PHP 배열 병합 키는 변경되지 않습니다.

기본적으로 위 두 가지 방법으로 배열을 병합하면 키 이름이 변경됩니다. 그러나 때로는 원래 키 이름을 기반으로 병합 작업을 수행해야 하는 경우도 있습니다. 이때, 원래의 키 이름을 유지하면서 이전 배열의 동일한 키 이름을 가진 값을 이후 배열의 값으로 대체할 수 있는 array_replace() 함수를 사용할 수 있습니다. 여러 배열을 병합해야 하는 경우 차례로 호출할 수 있습니다.

  1. array_replace() 함수

array_replace() 함수는 원래 키 이름을 유지하면서 이전 배열의 동일한 키 이름을 가진 값을 이후 배열의 값으로 바꿉니다. 구체적인 사용법은 다음과 같습니다.

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_replace($array1, $array2);
print_r($array3);
로그인 후 복사

실행 결과:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)
로그인 후 복사
로그인 후 복사

이때 $array1 배열의 원래 키 이름과 순서는 변경되지 않고 $array2의 내용이 $array1로 덮어쓰여집니다.

  1. 여러 배열 병합

여러 배열을 병합해야 하는 경우 array_replace() 함수를 순서대로 호출할 수 있습니다. 예:

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array("city"=>"北京", "gender"=>"男");
$finalArray = array_replace($array1, $array2, $array3);
print_r($finalArray);
로그인 후 복사

실행 결과:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
    [city] => 北京
    [gender] => 男
)
로그인 후 복사

이때 배열 $finalArray 키 $array1의 이름과 순서는 동일하지만, $array2와 $array3 배열의 키 이름과 값은 $finalArray에 덮어쓰기됩니다.

3. 요약

일반적으로 PHP에서 배열 병합을 구현하는 방법은 여러 가지가 있으며 필요에 따라 다른 방법을 선택할 수 있습니다. 키 이름을 변경하지 않고 병합 작업을 수행해야 하는 경우 이를 구현하는 매우 편리한 방법은 array_replace() 함수입니다. 이 함수를 사용하면 원래 키 이름의 순서를 유지하면서 하나 이상의 배열 내용을 첫 번째 배열로 병합할 수 있습니다. 동시에 이 기능을 사용할 때 주의할 점은 병합할 배열의 수에는 제한이 없지만 배열의 키 이름이 동일하면 후속 배열의 값이 덮어쓰여진다는 것입니다. 이전 배열의 해당 키 값.

위 내용은 PHP 배열을 병합할 때 키를 변경하지 않고 유지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿