Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memulakan subskrip tatasusunan php dari 1

Bagaimana untuk memulakan subskrip tatasusunan php dari 1

PHPz
PHPzasal
2023-04-18 14:08:521495semak imbas

Dalam PHP, subskrip tatasusunan lalai bermula dari 0. Walau bagaimanapun, dalam sesetengah senario, subskrip tatasusunan mungkin perlu diubah untuk bermula dari 1. Artikel ini akan memperkenalkan 3 kaedah untuk mencapai keperluan ini.

Kaedah 1: Ubah suai subskrip tatasusunan secara manual

Ubah suai subskrip tatasusunan secara manual ialah kaedah yang paling mudah. Apabila menentukan tatasusunan dan mengisi data, cuma tingkatkan subskrip bermula dari 1. Contohnya:

$arr = array(
    1 => '第一个元素',
    2 => '第二个元素',
    3 => '第三个元素'
);

Selepas memproses dengan cara ini, subskrip tatasusunan menjadi 1, 2 dan 3.

Perlu diambil perhatian bahawa apabila menukar subskrip tatasusunan kepada bermula dari 1, subskrip mesti dinyatakan secara manual. Tatasusunan tidak boleh diisi dengan cara lalai, jika tidak, subskrip masih akan bermula dari 0.

Kaedah 2: Tukar penunjuk tatasusunan

Dalam PHP, anda boleh menggunakan fungsi set semula untuk menetapkan semula penuding tatasusunan kepada elemen pertama, dan fungsi akhir untuk mengalihkan penuding tatasusunan ke yang terakhir unsur. Jika anda boleh mengalihkan penuding tatasusunan ke -1, iaitu, di hadapan elemen ke-0, anda boleh menukar subskrip tatasusunan untuk bermula dari 1.

Contoh kod:

$arr = array('第一个元素', '第二个元素', '第三个元素');
end($arr);     // 移动到最后一个元素
$idx = key($arr);     // 保存最后一个元素的下标
reset($arr);     // 将指针重置到第一个元素
$i = 0;
while(key($arr) !== $idx) {
    $i++;
    next($arr);     // 指针后移
    $arr_new[$i] = current($arr);     // 保存当前元素到新数组
}
$arr_new[1] = $arr[0];     // 将第0个元素移动到下标为1的位置

Kod di atas akan menukar subskrip tatasusunan $arr untuk bermula dari 1.

Perlu diingatkan bahawa kaedah ini agak tidak cekap kerana ia memerlukan pengalihan penunjuk beberapa kali. Dan jika unsur ke-0 tatasusunan wujud, pemprosesan khas diperlukan.

Kaedah 3: Gunakan fungsi array_combine

Fungsi array_combine boleh menggunakan satu tatasusunan sebagai subskrip dan tatasusunan lain sebagai nilai untuk mencipta tatasusunan bersekutu baharu. Jika anda menggunakan 0, 1, 2, dan 3 sebagai tatasusunan subskrip dan nilai tatasusunan asal sebagai tatasusunan nilai, anda boleh menukar subskrip untuk bermula dari 1.

Contoh kod:

$arr = array('第一个元素', '第二个元素', '第三个元素');
$arr_new = array_combine(range(1, count($arr)), $arr);

Kod di atas akan mencipta tatasusunan baharu $arr_new, yang subskripnya bermula dari 1.

Perlu diambil perhatian bahawa panjang tatasusunan yang dijana oleh fungsi julat mestilah sama dengan panjang tatasusunan asal. Jika panjang dua tatasusunan tidak sepadan, amaran dijana. Tambahan pula, pendekatan ini hanya berfungsi dengan tatasusunan bersekutu. Untuk tatasusunan diindeks biasa, subskrip tatasusunan mungkin disusun semula.

Ringkasan

Ia mungkin perlu untuk memulakan subskrip tatasusunan PHP dari 1. Antara tiga kaedah, mengubah suai subskrip tatasusunan secara manual ialah cara yang paling intuitif dan berprestasi terbaik Walaupun tatasusunan kaedah penunjuk boleh dilaksanakan, ia kurang cekap dan mempunyai skop aplikasi yang terhad menggunakan fungsi array_combine juga merupakan kaedah yang lebih baik, tetapi skop aplikasinya lebih sempit dan hanya digunakan untuk tatasusunan bersekutu. Perlu memilih kaedah yang sesuai untuk memenuhi keperluan berdasarkan situasi sebenar.

Atas ialah kandungan terperinci Bagaimana untuk memulakan subskrip tatasusunan php dari 1. 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