Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar indeks berangka ke dalam tatasusunan bersekutu dalam php

Bagaimana untuk menukar indeks berangka ke dalam tatasusunan bersekutu dalam php

PHPz
PHPzasal
2023-04-26 09:21:51645semak imbas

Dalam PHP, tatasusunan ialah struktur data yang sangat penting dan biasa digunakan, yang digunakan untuk menyimpan set data. Secara amnya, tatasusunan terdiri daripada dua bahagian: kunci dan nilai Kunci boleh berupa integer atau jenis rentetan, dan nilainya boleh berupa mana-mana jenis data PHP.

Dalam PHP, kadangkala kita perlu menukar tatasusunan indeks berangka kepada tatasusunan bersekutu. Tatasusunan indeks berangka bermakna indeks tatasusunan ialah nombor, bermula dari 0 dan meningkat mengikut turutan, manakala tatasusunan bersekutu bermakna indeks tatasusunan ialah rentetan.

Sebab penukaran ini mungkin kerana kita perlu menggunakan item data tertentu dalam tatasusunan sebagai kunci untuk mencari nilai yang sepadan dalam tatasusunan. Jika indeks tatasusunan adalah angka, tiada cara untuk menggunakan nilai item tatasusunan secara langsung sebagai kunci.

Mari kita lihat cara menukar tatasusunan indeks berangka kepada tatasusunan bersekutu.

Kaedah 1: Gunakan untuk gelung

Pertama, kita boleh menggunakan gelung for untuk melintasi tatasusunan dan menetapkan kunci dan nilai tatasusunan kepada kunci dan nilai bersekutu tatasusunan masing-masing. Kaedah ini agak mudah dan mudah difahami Kodnya adalah seperti berikut:

$numArr = array(1, 2, 3, 4, 5);

$assocArr = array();

for($i = 0; $i < count($numArr); $i++) {

    $assocArr["key".$i] = $numArr[$i];

}

print_r($assocArr);

Kod di atas menyimpan setiap elemen dalam tatasusunan $numArr ke tatasusunan $assocArr, dan menggunakan bentuk "kunci" + nombor sebagai kunci.

Kaedah 2: Gunakan gelung foreach

Selain gelung for, kita juga boleh menggunakan gelung foreach untuk menukar tatasusunan indeks berangka kepada tatasusunan bersekutu. Gelung foreach boleh merentasi setiap elemen dalam tatasusunan dengan mudah Kodnya adalah seperti berikut:

$numArr = array(1, 2, 3, 4, 5);

$assocArr = array();

foreach($numArr as $key => $value) {

    $assocArr["key".$key] = $value;

}

print_r($assocArr);

Kod di atas adalah serupa dengan kaedah 1. Ia menggunakan gelung foreach untuk melintasi tatasusunan $numArr dan menambah nilai setiap elemen dalam tatasusunan. Kunci dan nilai disimpan ke dalam tatasusunan $assocArr.

Kaedah 3: Gunakan fungsi array_combine

PHP menyediakan array_combine fungsi terbina dalam, yang boleh menggabungkan dua tatasusunan menjadi tatasusunan bersekutu, dengan nilai satu tatasusunan sebagai kunci dan nilai daripada tatasusunan yang lain sebagai nilai. Dalam kes ini, kita boleh menggunakan fungsi julat untuk menjana tatasusunan yang diindeks secara berangka dan kemudian menggunakan fungsi array_combine untuk menukarnya kepada tatasusunan bersekutu. Kodnya adalah seperti berikut:

$numArr = array(1, 2, 3, 4, 5);

$keys = array_map(function($n) { return "key".$n; }, range(0, count($numArr) - 1));

$assocArr = array_combine($keys, $numArr);

print_r($assocArr);

Dalam kod di atas, fungsi julat menjana tatasusunan indeks berangka dari 0 hingga panjang tatasusunan -1, dan kemudian menggunakan fungsi peta_susun untuk menambah awalan "kunci" kepada setiap elemen, mendapatkan $keys tatasusunan baharu. Akhir sekali, gunakan fungsi array_combine untuk menggabungkan tatasusunan $keys dan $numArr ke dalam tatasusunan bersekutu $assocArr.

Ringkasan

Dalam PHP, terdapat banyak cara untuk menukar tatasusunan indeks berangka kepada tatasusunan bersekutu, termasuk menggunakan untuk gelung, gelung foreach dan fungsi array_combine. Kaedah yang anda pilih bergantung pada keperluan khusus anda dan tabiat pengekodan. Perlu diingatkan bahawa kunci tatasusunan bersekutu yang ditukar mestilah daripada jenis rentetan, jika tidak ia akan ditukar kepada integer.

Atas ialah kandungan terperinci Bagaimana untuk menukar indeks berangka ke dalam tatasusunan 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