이번엔 배열을 다룰때 중간에 추가하는 방법을 다루겠습니다.
이 방법에는 배열과 관련한 2개의 함수를 사용합니다.
각 함수는 array_slice()와 array_merge()함수입니다.
아래 코드를 보시겠습니다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
$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가 적용되어 모바일에서는 안보일 수 있습니다.)
$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을 하시면 됩니다.
'PHP' 카테고리의 다른 글
PHP에서 모바일 접속 여부를 확인하는 오픈소스 (0) | 2015.02.25 |
---|---|
[PHP] 대용량 텍스트 파일 자르기 (0) | 2015.02.12 |
Warning: strpos(): Offset not contained in string in 이 발생하는 경우 (0) | 2015.02.04 |
PHP에서 배열을 정렬하는 방법 (0) | 2015.02.02 |
PHP에서 배열에 값이 포함되어 있는지 여부와 해당 인덱스 가져오기 (0) | 2015.01.28 |