Menu
Coddy logo textTech

'array_shift' ile Silme

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 13 / 68.

array_shift() işlevi, bir dizinin ilk öğesini kaldırır ve kaldırılan bu değeri döndürür. Bu, bir dizinin başına öğeler ekleyen array_unshift() işlevinin tam tersidir.

İşte nasıl çalıştığı:

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

array_shift() işlevinin hem özgün diziyi değiştirdiğine hem de kaldırılan öğeyi döndürdüğüne dikkat edin. İlk öğe kaldırıldıktan sonra kalan tüm öğeler, boşluğu doldurmak için otomatik olarak bir alt indekse kayar: "Bob", 1. indexten 0. indexe, "Charlie" ise 2. indexten 1. indexe taşınır.

Bu yeniden indeksleme otomatik olarak gerçekleşir ve dizinizin uygun sayısal sırayı korumasını sağlar. Boş bir dizi üzerinde array_shift() kullanırsanız, bir hataya neden olmadan null döndürür.

Bu işlev, öğeleri “ilk giren, ilk çıkar” sırasıyla işlediğiniz kuyrukları uygulamak için özellikle kullanışlıdır; örneğin sıradaki müşterileri ele almak veya görevleri alınma sırasına göre işlemek gibi.

challenge icon

Görev

Kolay

İki girdi alacaksınız: JSON biçiminde sırada bekleyen müşterilerin bulunduğu başlangıç dizisi ve kaç müşteriye hizmet verileceğini belirten bir sayı. Her iki girdiyi okuyun, JSON dizesini diziye dönüştürün, hizmet verilen müşterileri sıranın başından kaldırmak için belirtilen sayıda array_shift() kullanın ve son diziyi print_r() kullanarak yazdırın.

Girdi biçimi: İki satır — ilk satır bir JSON dizisi içerir (örnek: ["Alice","Bob","Charlie","Diana"]), ikinci satır hizmet verilecek müşteri sayısını içerir (bir sayı)

Beklenen çıktı: Hizmet verilen müşteriler baştan kaldırıldıktan sonraki dizinin print_r() kullanılarak görüntülenmesi

Kendin dene

<?php
// Müşterilerin JSON dizisini oku
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// Hizmet verilecek müşteri sayısını oku
$numToServe = intval(fgets(STDIN));

// TODO: Kodunuzu aşağıya yazın
// Müşterileri sıranın önünden kaldırmak için array_shift() kullanın


// Son diziyi yazdır
print_r($customers);
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi