우선 두 함수의 메뉴얼 주소는 아래와 같다.
array_slice() :
http://kr1.php.net/manual/kr/function.array-slice.php
array_splice() :
http://kr1.php.net/manual/kr/function.array-splice.php
자 언뜻보기엔 비슷해 보이는 이 두 함수의 차이점은 아래 예제와 같다.
<?php
$arr1 = $arr2 = $arr3 = $arr4 = $arr5 = array('a', 'b', 'c', 'd', 'e'=>'e', 'f'=>'f');
array_splice($arr1, 3, 2);
echo '<br>array_splice($arr1, 3, 2);<br>';
print_r($arr1);
$arr2 = array_splice($arr2, 3, 2);
echo '<br>$arr2 = array_splice($arr2, 3, 2);<br>';
print_r($arr2);
array_splice($arr5, 3, 2, array("g", "h"));
echo '<br>$arr5 = array_splice($arr5, 3, 2, array("g", "h"));<br>';
print_r($arr5);
array_slice($arr3, 3, 2);
echo '<br>array_slice($arr3, 3, 2);<br>';
print_r($arr3);
$arr4 = array_slice($arr4, 3, 2);
echo '<br>$arr4 = array_slice($arr4, 3, 2);<br>';
print_r($arr4);
?>
array_splice($arr1, 3, 2);
Array
(
[0] => a
[1] => b
[2] => c
[f] => f
)
$arr2 = array_splice($arr2, 3, 2);
Array
(
[0] => d
[e] => e
)
$arr5 = array_splice($arr5, 3, 2, array("g", "h"));
Array
(
[0] => a
[1] => b
[2] => c
[3] => g
[4] => h
[f] => f
)
array_slice($arr3, 3, 2);
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[e] => e
[f] => f
)
$arr4 = array_slice($arr4, 3, 2);
Array
(
[0] => d
[e] => e
)
비슷한 기능이지만, 원래의 배열을 건드리냐 안 건드리냐 차이가 있고, array_splice()는 배열요소를 바꿔 넣을 수도 있다.