Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membezakan Antara Tatasusunan Berjujukan dan Bersekutu dalam 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); }
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)
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
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!