Menu
Coddy logo textTech

'array_slice'로 추출하기

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 16번째.

array_slice() 함수를 사용하면 원본 배열을 수정하지 않고 배열의 일부를 추출할 수 있습니다. 소스 배열을 변경하는 array_pop()이나 array_shift()와 같은 함수와 달리, array_slice()는 지정한 요소만 포함하는 새로운 배열을 생성합니다.

이 함수는 두 개의 주요 매개변수를 가집니다: offset (시작 위치) 및 length (추출할 요소의 개수):

<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree);  // 출력: Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores);    // 원본 배열은 변경되지 않음
?>

offset 매개변수는 PHP에 추출을 시작할 위치를 알려주며(0은 첫 번째 요소를 의미함), length 매개변수는 가져올 요소의 수를 지정합니다. 또한 offset에 음수 값을 사용하여 배열의 끝에서부터 계산을 시작할 수도 있습니다.

이 함수는 대규모 목록에서 처음 몇 개의 항목만 표시하거나 처리를 위해 특정 범위의 요소를 추출하는 것과 같이 데이터의 하위 집합으로 작업해야 할 때 특히 유용하며, 이 모든 과정에서 원본 데이터는 그대로 유지됩니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

쉬움

세 개의 입력을 받게 됩니다: JSON 형식의 제품 가격 배열, 시작 위치(offset), 그리고 추출할 항목의 개수(length)입니다. 세 입력을 모두 읽고, JSON 문자열을 배열로 변환한 뒤, array_slice()를 사용하여 배열의 지정된 부분을 추출하고, print_r()을 사용하여 추출된 슬라이스를 출력하세요.

입력 형식: 세 줄 - 첫 번째 줄은 숫자로 된 JSON 배열(예: [29.99,15.50,42.00,8.75,33.25]), 두 번째 줄은 오프셋(시작 위치), 세 번째 줄은 길이(추출할 요소의 개수)를 포함합니다.

예상 출력: print_r()을 사용하여 표시된 배열의 추출된 부분

치트 시트

array_slice() 함수는 원본 배열을 수정하지 않고 배열의 일부를 추출합니다.

구문: array_slice($array, $offset, $length)

  • offset: 시작 위치 (0 = 첫 번째 요소)
  • length: 추출할 요소의 개수
  • 배열의 끝에서부터 시작하려면 음수 오프셋을 사용하세요.
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree);  // Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores);    // 원본 배열은 변경되지 않음
?>

직접 해보기

<?php
// 가격 정보가 담긴 JSON 배열을 읽습니다
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);

// 오프셋(시작 위치)을 읽습니다
$offset = intval(fgets(STDIN));

// 길이(추출할 요소의 개수)를 읽습니다
$length = intval(fgets(STDIN));

// TODO: 아래에 슬라이스를 추출하고 출력하는 코드를 작성하세요

?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨