Dalam PHP, tatasusunan secara semula jadi bersekutu, tidak mempunyai mekanisme terbina dalam untuk membezakan antara kekunci angka bermula dari 0 ( tatasusunan berjujukan) dan kunci rentetan arbitrari (tatasusunan bersekutu). Pembezaan ini boleh menjadi penting untuk pelbagai senario pengaturcaraan.
Untuk menentukan sama ada tatasusunan adalah berjujukan, anda boleh memanfaatkan fungsi array_is_list() yang baru diperkenalkan dalam PHP 8.1. Walau bagaimanapun, untuk versi PHP yang lebih lama, fungsi tersuai boleh menyediakan alternatif praktikal:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Fungsi ini menyemak sama ada tatasusunan kosong atau jika kekuncinya ialah urutan nombor berterusan bermula dari 0. Jika kedua-dua keadaan dipenuhi, tatasusunan dianggap berurutan.
Untuk menggambarkan kefungsian array_is_list() fungsi:
var_dump(array_is_list([])); // true var_dump(array_is_list(['a', 'b', 'c'])); // true var_dump(array_is_list(["0" => 'a', "1" => 'b', "2" => 'c'])); // true var_dump(array_is_list(["1" => 'a', "0" => 'b', "2" => 'c'])); // false var_dump(array_is_list(["a" => 'a', "b" => 'b', "c" => 'c'])); // false
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membezakan Antara Tatasusunan Berjujukan dan Bersekutu dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!