Menu
Coddy logo textTech

Usuwanie za pomocą 'array_shift'

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 13 z 68.

Funkcja array_shift() usuwa pierwszy element z tablicy i zwraca usuniętą wartość. Działa odwrotnie niż array_unshift(), która dodaje elementy na początku tablicy.

Oto jak to działa:

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

Zauważ, że array_shift() modyfikuje oryginalną tablicę i zwraca usunięty element. Po usunięciu pierwszego elementu wszystkie pozostałe elementy automatycznie przesuwają się, aby wypełnić lukę: „Bob” przechodzi z indeksu 1 na indeks 0, a „Charlie” z indeksu 2 na indeks 1.

To ponowne indeksowanie odbywa się automatycznie, dzięki czemu tablica zachowuje prawidłową sekwencję numeryczną. Jeśli użyjesz funkcji array_shift() na pustej tablicy, zwróci ona null bez powodowania błędu.

Ta funkcja jest szczególnie przydatna przy implementowaniu kolejek, w których przetwarzasz elementy w kolejności „pierwsze weszło, pierwsze wyszło”, na przykład obsługując klientów w kolejce lub przetwarzając zadania w kolejności ich otrzymania.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa wejścia: początkową tablicę klientów czekających w kolejce w formacie JSON oraz liczbę określającą, ilu klientów obsłużyć. Odczytaj oba wejścia, przekonwertuj ciąg JSON na tablicę, użyj array_shift() określoną liczbę razy, aby usunąć obsłużonych klientów z początku kolejki, i wyświetl końcową tablicę za pomocą print_r().

Format wejściowy: Dwa wiersze — pierwszy zawiera tablicę JSON (przykład: ["Alice","Bob","Charlie","Diana"]), drugi zawiera liczbę klientów do obsłużenia (liczbę)

Oczekiwane wyjście: Tablica po usunięciu obsłużonych klientów z początku kolejki, wyświetlona za pomocą print_r()

Spróbuj swoich sił

<?php
// Wczytaj tablicę klientów w formacie JSON
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// Wczytaj liczbę klientów do obsłużenia
$numToServe = intval(fgets(STDIN));

// TODO: Napisz swój kod poniżej
// Użyj array_shift(), aby usuwać klientów z początku kolejki


// Wyświetl końcową tablicę
print_r($customers);
?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online