'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() fonksiyonu, bir diziden ilk öğeyi kaldırır ve kaldırılan bu değeri döndürür. Bu, bir dizinin başına öğeler ekleyen array_unshift() fonksiyonunun tam tersidir.
İşte şu şekilde çalışır:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Çıktı: Alice
print_r($queue); // Çıktı: Array ( [0] => Bob [1] => Charlie )
?>array_shift() fonksiyonunun hem orijinal diziyi değiştirdiğine hem de kaldırılan öğeyi döndürdüğüne dikkat edin. İlk öğeyi kaldırdıktan sonra, kalan tüm öğeler boşluğu doldurmak için otomatik olarak aşağı kayar—"Bob" indeks 1'den indeks 0'a, "Charlie" ise indeks 2'den indeks 1'e geçer.
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 fonksiyon, öğeleri "ilk giren, ilk çıkar" (first in, first out) düzeninde işlediğiniz kuyrukları (queues) uygulamak için özellikle yararlıdır—tıpkı sıradaki müşterilerle ilgilenmek veya görevleri alındıkları sırayla işlemek gibi.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
Kolayİki girdi alacaksınız: JSON formatında sırada bekleyen müşterilerin başlangıç dizisi ve kaç müşteriye hizmet verileceğini belirten bir sayı. Her iki girdiyi de okuyun, JSON dizesini bir 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 formatı: İ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 sıranın başından kaldırıldıktan sonraki dizinin print_r() kullanılarak görüntülenen hali
Kopya kağıdı
array_shift() fonksiyonu bir diziden ilk elemanı çıkarır ve çıkarılan bu değeri döndürür:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Çıktı: Alice
print_r($queue); // Çıktı: Array ( [0] => Bob [1] => Charlie )
?>Önemli noktalar:
- Orijinal diziyi değiştirir ve çıkarılan elemanı döndürür
- Kalan elemanlar otomatik olarak yeniden indekslenir (aşağı kaydırılır)
- Boş bir dizi üzerinde kullanılırsa
nulldöndürür - "İlk giren ilk çıkar" (FIFO) kuyruklarını uygulamak için kullanışlıdır
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
// Kuyruğun başındaki müşterileri çıkarmak için array_shift() kullanın
// Nihai diziyi yazdır
print_r($customers);
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama