반응형
php는 어레이를 병합하며 일반적으로 array_merge 방법을 사용한다.
array_merge - 하나 이상의 배열 병합
array array_merge ( array $array1 [, array $... ] )
array_merge는 하나 이상의 배열의 셀을 병합하여 하나의 배열의 값을 이전 배열의 뒤에 붙여 결과적인 배열로 되돌립니다.
입력한 배열에 문자열 키 이름이 같으면 키 이름 뒤에 있는 값이 이전 값을 덮어씁니다.배열에 숫자 키 이름이 포함되어 있으면, 뒤에 있는 것은 원래 이름을 덮어쓰지 않습니다.값이 아니라 뒤에 붙는다.
배열이 하나만 주어지고 배열이 숫자 인덱스가 되면 키 이름은 연속적으로 다시 인덱싱됩니다.
예1. 배열은 문자열 키 이름을 사용하고, 같은 키 이름은 뒤에 덮어씁니다
<?php
$arr1 = array('name'=>'fdipzone');
$arr2 = array('name'=>'terry');
$result = array_merge($arr1, $arr2);
print_r($result);
?>
출력:
Array
(
[name] => terry
)
예 2, 배열은 숫자 키 이름을 사용합니다. 키 이름이 같으면 덮어쓰지 않고, 다시 색인화됩니다
<?php
$arr1 = array(0=>'fdipzone',1=>'terry');
$arr2 = array(0=>'php',1=>'python');
$result = array_merge($arr1, $arr2);
print_r($result);
?>
출력:
Array
(
[0] => fdipzone
[1] => terry
[2] => php
[3] => python
)
업무상의 필요에 따라 설문지의 두 부분 선택 문항에 대한 답을 합쳐서 각 부분마다 배열(key=>value), key 제목, value를 답으로 하고 두 부분 문항은 중복되지 않는다.
array_merge를 사용하여 두 개의 답을 병합합니다
<?php
$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');
$result = array_merge($form_data1, $form_data2);
print_r($result);
?>
출력:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => B
[5] => A
[6] => D
[7] => C
)
array_merge를 사용하여 병합하면 키(key)가 숫자이기 때문에 키네임이 다시 색인화되므로 키네임을 유지할 수 없습니다.
배열들을 병합하고 키 값을 유지하는 방법:
<?php
$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');
$result = $form_data1 + $form_data2;
print_r($result);
?>
출력:
Array
(
[11] => A
[12] => B
[13] => C
[14] => D
[25] => B
[26] => A
[27] => D
[28] => C
)
"+" 연산을 사용하면 배열의 키 값을 유지할 수 있습니다. 배열에 동일한 키 값이 포함되어 있으면 앞의 키 값(앞의 우선 순위)
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP 로케일 설정 (0) | 2022.07.15 |
---|---|
PHP 배열이 연속 디지털 인덱스로 재설정되는 몇 가지 방법 (0) | 2022.07.15 |
php 배열에서 여러 열을 지정하는 방법 반환 (0) | 2022.07.15 |
MAC 아래 brew로 PHP 개발 환경 구축 (0) | 2022.07.15 |
ecshop 취약성 복구 정리 (0) | 2022.07.15 |