2015. 2. 5. 13:45

이번엔 배열을 다룰때 중간에 추가하는 방법을 다루겠습니다.

이 방법에는 배열과 관련한 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을 하시면 됩니다.

Posted by 작은0악마