Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membezakan Antara Tatasusunan Berjujukan dan Bersekutu dalam PHP?

Bagaimanakah Saya Boleh Membezakan Antara Tatasusunan Berjujukan dan Bersekutu dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 04:25:11631semak imbas

How Can I Distinguish Between Sequential and Associative Arrays in PHP?

Menentukan Sifat Tatasusunan PHP: Bersekutu atau Berjujukan

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.

Memeriahkan Tatasusunan Berjujukan dan Bersekutu

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.

Contoh Penggunaan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn