2016-02-17
우선 두 함수의 메뉴얼 주소는 아래와 같다.
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()는 배열요소를 바꿔 넣을 수도 있다.