$array = ['orange', 'banana', 'apple'];

// 배열의 시작 부분에서 첫 번째 요소를 제거합니다.
array_shift($array);
print_r($array);
/*
출력:
    Array
    (
        [0] => banana
        [1] => apple
    )
*/
array_shift(array &$array): mixed
$array = ['orange', 'banana', 'apple'];

// 배열의 시작 부분(첫 번째 값)에서 하나의 요소를 제거합니다.
$removedItem = array_shift($array);
print_r($array);
/*
출력:
    Array
    (
        [0] => banana
        [1] => apple
    )
*/

echo $removedItem; // 출력: 'orange'

// 배열이 비어있을 경우 1
$emptyArray_1 = [];
$emptyArray_1_removedItem = array_shift($emptyArray_1); // 제거할 첫 번째 값이 없이 배열이 비어 있음

var_dump($emptyArray_removedItem_1); // NULL

// 배열이 비어있을 경우 2
$emptyArray_2 = [1];
$emptyArray_2_removedItem = array_shift($emptyArray_2);

var_dump($emptyArray_2_removedItem); // int(1)
$fruits = ['apple', 'banana', 'cherry'];
$removedFruit = array_shift($fruits);
echo $removedFruit; // 'apple' 출력
$fruits = ['apple', 'banana', 'cherry'];
array_shift($fruits);
echo count($fruits); // 2 출력
$assocArray = ['name' => 'John', 'age' => 30];
array_shift($assocArray);
print_r($assocArray);
/*
출력:
    Array
    (
        [age] => 30
    )
*/
// 초기 요청 큐 생성
$requestQueue = [];

// 요청 추가
$requestQueue[] = '요청 1';
$requestQueue[] = '요청 2';
$requestQueue[] = '요청 3';

// 요청 처리
while ($request = array_shift($requestQueue)) {
    // 요청 처리
    echo "처리 중: $request";

    // 가상의 처리 시간을 생성
    $processingTime = rand(1, 3);
    sleep($processingTime); // 가상의 처리 시간 대기

    echo "처리 완료: $request";
}

// 모든 요청이 처리되었을 때 실행될 코드
echo "모든 요청 처리 완료";
$fruits = ['apple', 'banana', 'cherry'];

// 배열의 첫 번째 요소를 제거
unset($fruits[0]);

// 배열 출력
print_r($fruits);
/*
출력:
    Array
    (
        [0] => banana
        [1] => cherry
    )
*/