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
Lepaskan: 2024-12-15 16:07:10
asal
828 orang telah melayarinya

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

Mengenal pasti Tatasusunan Bersekutu atau Berjujukan dalam PHP

Dengan perlakuan PHP terhadap tatasusunan sebagai bersekutu secara lalai, membezakan antara tatasusunan berurutan dan bersekutu menimbulkan cabaran . Ini timbul daripada keperluan untuk mengkategorikan tatasusunan sebagai sama ada "senarai" (kunci angka bermula dari 0) atau tatasusunan bersekutu (kunci bernama).

Mengenal pasti Susunan Berjujukan

Kepada tentukan sama ada tatasusunan adalah berjujukan, fungsi berikut boleh digunakan:

function array_is_list(array $arr)
{
    if ($arr === []) {
        return true;
    }
    return array_keys($arr) === range(0, count($arr) - 1);
}
Salin selepas log masuk

Menggunakan fungsi ini, kita boleh membezakan tatasusunan berikut:

$arr1 = ['apple', 'orange', 'tomato', 'carrot'];
$arr2 = ['fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot'];

var_dump(array_is_list($arr1)); // true (sequential array)
var_dump(array_is_list($arr2)); // false (associative array)
Salin selepas log masuk

Kod Warisan dan PHP 8.1

Untuk PHP 8.1 dan ke atas, fungsi array_is_list() terbina dalam menghapuskan keperluan untuk tersuai fungsi:

var_dump(array_is_list(['a', 'b', 'c'])); // true
var_dump(array_is_list(['1' => 'a', '0' => 'b', '2' => 'c'])); // true
var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan