PHP

    array_slice 배열의 일부를 추출
    • 조회수 1,943
    • 작성일 2016-06-07
    •  
    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;
      }
    }