Dalam PHP, adalah keperluan biasa untuk mendapatkan beberapa aksara terakhir tatasusunan. Biasanya, kita boleh menggunakan fungsi array_slice untuk mencapai ini. Walau bagaimanapun, fungsi ini hanya boleh digunakan untuk tatasusunan yang diindeks secara berangka, yang akan menyebabkan masalah jika tatasusunan kami ialah tatasusunan bersekutu. Oleh itu, artikel ini akan memperkenalkan kaedah yang lebih umum untuk mendapatkan beberapa aksara terakhir tatasusunan.
Kaedah 1: Gunakan fungsi array_slice
Fungsi array_slice ialah fungsi yang sangat berkuasa yang boleh digunakan untuk memintas serpihan tertentu dalam tatasusunan. Kita boleh menggunakan fungsi ini untuk mendapatkan beberapa elemen terakhir tatasusunan. Berikut ialah kod sampel menggunakan fungsi array_slice:
$arr = [1, 2, 3, 4, 5]; $lastTwo = array_slice($arr, -2, 2); print_r($lastTwo);
Mula-mula, kami mentakrifkan tatasusunan $arr yang mengandungi 5 elemen. Kami ingin mendapatkan dua elemen terakhir dalam tatasusunan, jadi parameter pertama ialah tatasusunan itu sendiri, parameter kedua ialah kedudukan di mana indeks bermula, dengan memberikan nombor negatif untuk menunjukkan permulaan kira detik, dan parameter ketiga ialah panjang pemintasan, juga Hanya dapatkan beberapa elemen. Kerana kita ingin mendapatkan dua elemen terakhir, panjang pemangkasan ialah 2.
Keluaran kod di atas ialah:
Array ( [3] => 4 [4] => 5 )
Seperti yang anda lihat, output ialah dua elemen terakhir [4,5].
Sudah tentu, jika tatasusunan anda ialah tatasusunan bersekutu, anda perlu mendapatkan nama kunci tatasusunan dahulu, dan kemudian dapatkan nilai yang sepadan berdasarkan nama kunci. Operasi khusus adalah seperti berikut:
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $keys = array_keys($arr); $lastTwoKeys = array_slice($keys, -2, 2); $lastTwoValues = array_intersect_key($arr, array_flip($lastTwoKeys)); print_r($lastTwoValues);
Di sini, kita mula-mula menggunakan fungsi array_keys untuk mendapatkan semua nama kunci tatasusunan bersekutu $arr. Kemudian, gunakan fungsi array_slice untuk mendapatkan dua kekunci terakhir dalam tatasusunan kunci. Akhir sekali, gunakan fungsi array_intersect_key untuk mengekstrak nilai yang sepadan daripada tatasusunan kunci untuk membentuk tatasusunan baharu, dan keluarkan hasilnya.
Kaedah 2: Gunakan fungsi array_reverse dan array_slice
Selain fungsi array_slice, terdapat cara lain untuk mendapatkan beberapa elemen terakhir tatasusunan, iaitu menggunakan gabungan array_reverse dan array_slice fungsi. Fungsi array_reverse boleh membalikkan tatasusunan, dan fungsi array_slice boleh digunakan untuk memintas segmen tatasusunan.
Berikut ialah contoh kod menggunakan array_reverse dan array_slice fungsi:
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $reversedArray = array_reverse($arr, true); $lastTwoValues = array_slice($reversedArray, 0, 2, true); print_r($lastTwoValues);
Mula-mula, kita membalikkan tatasusunan bersekutu $arr ke atas. Parameter kedua benar yang diluluskan di sini adalah untuk mengekalkan hubungan antara nama kunci dan nilai. Kemudian, gunakan fungsi array_slice untuk mendapatkan dua elemen pertama tatasusunan terbalik. Ambil perhatian bahawa kedudukan indeks di sini harus bermula dari 0 kerana tatasusunan telah dibalikkan.
Hasil keluaran kod di atas ialah:
Array ( [e] => 5 [d] => 4 )
Seperti yang anda lihat, hasil keluaran ialah dua elemen terakhir [5,4], dan sama dengan output hasil kaedah satu.
Ringkasan
Sama ada anda menggunakan fungsi array_slice atau gabungan fungsi array_reverse dan array_slice, anda boleh mendapatkan beberapa elemen terakhir tatasusunan dengan mudah. Walau bagaimanapun, perlu diingat bahawa jika tatasusunan anda ialah tatasusunan bersekutu, anda perlu terlebih dahulu mendapatkan nama kunci tatasusunan dan kemudian mendapatkan nilai yang sepadan berdasarkan nama kunci. Pada masa yang sama, sila ambil perhatian juga bahawa susunan nama kunci dalam nilai pulangan tidak semestinya sama seperti dalam tatasusunan asal, jadi penjagaan khas diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan aksara terakhir tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!