array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )
array_slice()는 offset 과 length 인수에 따라 array로부터 일련의 배열 원소를 반환한다.
array : 입력 배열.
offset : offset이 음수가 아니면, 일련의 값은 array의 그 offset 수부터 시작할것이다. offset이 음수이면, 일련의 값은 array의 끝에서부터 그 수만큼 떨어진 곳에서부터 시작한다.
length : length가 주어지고 양수이면, 일련의 값은 그 수만큼의 배열 원소가 될것이다. length가 주어지고 음수이면, 배열의 끝에서부터 그 수만큼의 배열원소가 될것이다. 이 인수가 생략되면, 일련의 값은 offset에서부터 array 끝까지의 모든 원소를 가지게 된다.
preserve_keys : array_slice()는 기본값으로 배열 인덱스를 초기화하여 다시 정렬한다. preserve_keys를 TRUE로 설정하여 이 동작을 바꿀 수 있다.
[예]
function cut_str($str, $len, $suffix="…") {
$arr_str = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
$str_len = count($arr_str);
if ($str_len >= $len) {
$slice_str = array_slice($arr_str, 0, $len);
$str = join("", $slice_str);
return $str . ($str_len > $len ? $suffix : '');
} else {
$str = join("", $arr_str);
return $str;
}
}