Menghapus dengan 'array_shift'
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 13 dari 68.
Fungsi array_shift() menghapus elemen pertama dari array dan mengembalikan nilai yang dihapus tersebut. Ini adalah kebalikan dari array_unshift(), yang menambahkan elemen ke awal array.
Begini cara kerjanya:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Output: Alice
print_r($queue); // Output: Array ( [0] => Bob [1] => Charlie )
?>Perhatikan bahwa array_shift() mengubah array asli sekaligus mengembalikan elemen yang dihapus. Setelah elemen pertama dihapus, semua elemen yang tersisa otomatis bergeser untuk mengisi celah: "Bob" berpindah dari indeks 1 ke indeks 0, dan "Charlie" berpindah dari indeks 2 ke indeks 1.
Pengindeksan ulang ini terjadi secara otomatis, sehingga array-mu tetap memiliki urutan numerik yang benar. Jika kamu menggunakan array_shift() pada array kosong, fungsi ini mengembalikan null tanpa menyebabkan error.
Fungsi ini sangat berguna untuk membuat antrean, tempat kamu memproses item dengan urutan "pertama masuk, pertama keluar", seperti melayani pelanggan dalam antrean atau memproses tugas sesuai urutan diterimanya.
Tantangan
MudahKamu akan menerima dua input: array awal pelanggan yang menunggu dalam antrean dalam format JSON dan angka yang menunjukkan jumlah pelanggan yang harus dilayani. Baca kedua input, ubah string JSON menjadi array, gunakan array_shift() sebanyak jumlah yang ditentukan untuk menghapus pelanggan yang telah dilayani dari bagian depan antrean, lalu tampilkan array akhir menggunakan print_r().
Format input: Dua baris: baris pertama berisi array JSON (contoh: ["Alice","Bob","Charlie","Diana"]), baris kedua berisi jumlah pelanggan yang harus dilayani (sebuah angka)
Output yang diharapkan: Array setelah pelanggan yang dilayani dihapus dari bagian depan, ditampilkan menggunakan print_r()
Coba sendiri
<?php
// Baca array JSON yang berisi pelanggan
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// Baca jumlah pelanggan yang akan dilayani
$numToServe = intval(fgets(STDIN));
// TODO: Tulis kodemu di bawah ini
// Gunakan array_shift() untuk menghapus pelanggan dari depan antrean
// Tampilkan array akhir sebagai output
print_r($customers);
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online