Membezakan Tatasusunan PHP Bersekutu dan Berjujukan
PHP sememangnya mengiktiraf semua tatasusunan sebagai bersekutu, menjadikannya sukar untuk membezakan antara tatasusunan yang berkelakuan seperti senarai. Untuk menyelesaikan masalah ini, kami meneroka kaedah yang boleh dipercayai untuk menentukan sama ada tatasusunan layak sebagai senarai.
Senarai vs. Tatasusunan Bersekutu
$sequentialArray = [ 'apple', 'orange', 'tomato', 'carrot' ];
$assocArray = [ 'fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot' ];
Mengenal pasti Senarai dalam PHP 8.1 dan Di luar
PHP 8.1 memperkenalkan array_is_list() untuk menyemak dengan mudah jika tatasusunan ialah senarai:
array_is_list($sequentialArray); // true
Penyelesaian Legasi untuk Versi PHP Terdahulu
Untuk memenuhi versi PHP pra-8.1, kami boleh menentukan tersuai fungsi:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Menguji 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
Dengan memanfaatkan kaedah ini, pembangun boleh membezakan secara berkesan antara tatasusunan bersekutu dan berjujukan, membolehkan tatasusunan yang lebih tepat dan cekap pengendalian dalam aplikasi PHP mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Tentukan dengan Boleh Menentukan jika Tatasusunan PHP ialah Senarai Berjujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!