이번엔 배열을 다룰때 중간에 추가하는 방법을 다루겠습니다.
이 방법에는 배열과 관련한 2개의 함수를 사용합니다.
각 함수는 array_slice()와 array_merge()함수입니다.
아래 코드를 보시겠습니다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
|
1
2
|
$arr =
array
(
"aaa"
,
"bbb"
,
"ccc"
,
"ddd"
,
"eee"
,
"fff"
);
print_r(
$arr
);
|
위 코드를 실행하면 결과는 다음과 같습니다.
"Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd [4] => eee [5] => fff )"
이제 코드를 수정해 보겠습니다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
|
1
2
3
4
5
6
7
8
9
10
11
|
$arr =
array
(
"aaa"
,
"bbb"
,
"ccc"
,
"ddd"
,
"eee"
,
"fff"
);
$add =
"jjj"
;
function insert_array(
$arr
,
$idx
,
$add
){
$arr_front =
array_slice
(
$arr
, 0,
$idx
);
$arr_end =
array_slice
(
$arr
,
$idx
);
$arr_front
[] =
$add
;
return array_merge
(
$arr_front
,
$arr_end
);
}
$arr = insert_array(
$arr
, 2,
$add
);
print_r(
$arr
);
|
위 코드를 실행해보면 다음과 같은 결과가 나옵니다.
"Array ( [0] => aaa [1] => bbb [2] => jjj [3] => ccc [4] => ddd [5] => eee [6] => fff )"
insert_array()함수를 호출할 때 삽입할 idx를 2를 제시했기 때문에 해당 인덱스에 추가된 것을 보실 수 있습니다.
여기서 한가지 덧붙이자면...
지난번 포스팅한 "PHP에서 배열에 값이 포함되어 있는지 여부와 해당 인덱스 가져오기" 와 혼용하여
특정 인덱스 다음에 추가를 하고자 하실때는 insert_array()함수를 호출할때 가져온 인덱스 + 1을 하시면 됩니다.