Menu
Coddy logo textTech

'array_shift'로 제거하기

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

array_shift() 함수는 배열에서 첫 번째 요소를 제거하고 제거된 값을 반환합니다. 이는 배열의 시작 부분에 요소를 추가하는 array_unshift()와 반대입니다.

작동 방식은 다음과 같습니다:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // 출력: Alice
print_r($queue);    // 출력: Array ( [0] => Bob [1] => Charlie )
?>

array_shift()는 원본 배열을 수정하는 동시에 제거된 요소를 반환한다는 점에 유의하세요. 첫 번째 요소를 제거한 후, 나머지 모든 요소는 빈 자리를 채우기 위해 자동으로 아래로 이동합니다. 즉, "Bob"은 인덱스 1에서 인덱스 0으로 이동하고, "Charlie"는 인덱스 2에서 인덱스 1로 이동합니다.

이 재인덱싱은 자동으로 발생하여 배열이 적절한 숫자 시퀀스를 유지하도록 보장합니다. 빈 배열에 array_shift()를 사용하면 오류를 발생시키지 않고 null을 반환합니다.

이 함수는 줄을 서 있는 고객을 응대하거나 작업이 접수된 순서대로 처리하는 것과 같이, 항목을 "선입선출(first in, first out)" 순서로 처리하는 큐(queue)를 구현하는 데 특히 유용합니다.

quiz icon실력 점검

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

quiz icon실력 점검

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

quiz icon실력 점검

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

challenge icon

챌린지

쉬움

두 개의 입력을 받게 됩니다: JSON 형식의 대기 중인 고객 초기 배열과 서비스를 제공할 고객 수를 나타내는 숫자입니다. 두 입력을 모두 읽고, JSON 문자열을 배열로 변환한 다음, array_shift()를 지정된 횟수만큼 사용하여 줄의 맨 앞에서 서비스를 받은 고객을 제거하고, print_r()을 사용하여 최종 배열을 출력하세요.

입력 형식: 두 줄 - 첫 번째 줄은 JSON 배열(예: ["Alice","Bob","Charlie","Diana"])을 포함하고, 두 번째 줄은 서비스를 제공할 고객 수(숫자)를 포함합니다.

예상 출력: 줄의 맨 앞에서 서비스를 받은 고객을 제거한 후의 배열을 print_r()을 사용하여 표시합니다.

치트 시트

array_shift() 함수는 배열에서 첫 번째 요소를 제거하고 그 제거된 값을 반환합니다:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // 출력: Alice
print_r($queue);    // 출력: Array ( [0] => Bob [1] => Charlie )
?>

주요 특징:

  • 원본 배열을 수정하고 제거된 요소를 반환합니다
  • 나머지 요소들은 자동으로 인덱스가 다시 매겨집니다 (앞으로 이동)
  • 빈 배열에 사용할 경우 null을 반환합니다
  • "선입선출(FIFO)" 큐를 구현하는 데 유용합니다

직접 해보기

<?php
// 고객의 JSON 배열을 읽습니다
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// 서비스를 제공할 고객의 수를 읽습니다
$numToServe = intval(fgets(STDIN));

// TODO: 아래에 코드를 작성하세요
// array_shift()를 사용하여 대기열의 앞쪽에서 고객을 제거하세요


// 최종 배열을 출력합니다
print_r($customers);
?>
quiz icon실력 점검

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

논리 & 흐름의 모든 레슨