Menu

PHP array_slice(): Mengambil Sebagian Isi Array

array_slice($array, $offset, $length) mengembalikan salinan sebagian array tanpa mengubah array aslinya. Pelajari offset negatif untuk item terakhir, preserve_keys, membagi list menjadi halaman, dan bedanya dengan array_splice.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

array_slice($array, $offset, $length) mengembalikan array baru berisi $length elemen mulai dari posisi $offset. Array aslinya tidak berubah. Kalau $length tidak ditulis, semua elemen sampai akhir diambil.

Offset adalah posisi (0 adalah elemen pertama), bukan key. Ini penting untuk array asosiatif dan untuk array yang key-nya bukan 0, 1, 2.

Mengambil N elemen terakhir dengan offset negatif

Offset negatif dihitung dari akhir: -1 adalah elemen terakhir, -3 mulai dari tiga elemen sebelum akhir. Length negatif berhenti sejumlah elemen itu sebelum akhir.

Meminta elemen lebih banyak daripada yang ada tidak masalah: array_slice($log, 0, 100) mengembalikan kelimanya.

Mempertahankan key asli dengan preserve_keys

Key integer dinomori ulang mulai dari 0, kecuali kamu memberikan true sebagai argumen keempat. Key string selalu dipertahankan.

Pakai true saat key-nya punya arti, misalnya id dari database, dan kamu akan mencari elemen berdasarkan key itu nanti.

Membuat pagination array dengan array_slice

Menampilkan halaman $page dari sebuah list dengan $perPage item per halaman cukup dengan satu slice: offset-nya adalah ($page - 1) * $perPage. Contoh ini mencetak list HTML dengan link halaman. Jalankan, lalu klik nomor halaman: script yang sama berjalan lagi dengan $_GET['page'] yang diisi dari link tersebut.

Baris max(1, min($pages, ...)) menjaga ?page=99 atau ?page=-1 yang diketik manual tetap di dalam rentang yang valid. Dengan database, kamu akan meminta satu halaman saja dengan LIMIT dan OFFSET alih-alih memuat semua baris, tetapi untuk list yang sudah ada di memori, array_slice sudah cukup.

array_slice vs array_splice

Namanya hanya beda satu huruf, tetapi efeknya pada array asli berlawanan. array_slice menyalin sebagian isi keluar. array_splice memotong bagian itu dari array yang kamu berikan, menomorinya ulang, dan mengembalikan elemen yang dihapus. Fungsi ini juga bisa menyisipkan pengganti di tempat potongannya.

array_slicearray_splice
Mengubah array aslitidakya (lewat referensi)
Mengembalikanbagian yang dipilihbagian yang dihapus
Bisa menyisipkan elementidakya, argumen keempat
Key integerdinomori ulang kecuali preserve_keysdinomori ulang

Untuk cara lain menghapus elemen, lihat menghapus elemen dari array.

Membagi array menjadi potongan

Saat kamu butuh semua halaman sekaligus, misalnya untuk menyusun produk dalam baris berisi tiga, array_chunk melakukan slice berulang itu untukmu.

Ganti 3 menjadi 2 atau 4, lalu jalankan lagi. Potongan terakhir berisi sisa elemen yang ada.

Pertanyaan yang sering diajukan

Bagaimana cara mengambil N elemen pertama array di PHP?

array_slice($arr, 0, 3) mengembalikan tiga elemen pertama. Kalau array-nya berisi kurang dari tiga, kamu mendapatkan semuanya tanpa error.

Bagaimana cara mengambil N elemen terakhir array?

Pakai offset negatif: array_slice($arr, -3) mengembalikan tiga elemen terakhir. Kalau length tidak ditulis, artinya "sampai akhir".

Apa fungsi preserve_keys di array_slice?

Secara bawaan, array_slice menomori ulang key integer mulai dari 0. Berikan true sebagai argumen keempat, array_slice($arr, 2, 3, true), untuk mempertahankan key integer aslinya. Key string selalu dipertahankan, dengan atau tanpa argumen itu.

Apa bedanya array_slice dan array_splice?

array_slice mengembalikan salinan sebagian array dan tidak menyentuh array aslinya. array_splice menerima array lewat referensi, menghapus bagian itu dari array tersebut (dan bisa menyisipkan penggantinya), lalu mengembalikan bagian yang dihapus.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai