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

Bagaimana untuk menukar indeks dua dimensi ke dalam tatasusunan bersekutu dalam php

PHPz
PHPzasal
2023-04-20 15:02:33533semak imbas

Array mungkin merupakan salah satu jenis data yang paling banyak digunakan dalam PHP. Apabila anda berurusan dengan beberapa tatasusunan dua dimensi, anda mungkin mahu menukarnya menjadi tatasusunan bersekutu. Artikel ini menerangkan cara mencapai matlamat ini.

Dalam PHP, tatasusunan boleh terdiri daripada dua jenis: tatasusunan yang diindeks secara berangka atau tatasusunan bersekutu. Tatasusunan yang diindeks secara berangka ialah tatasusunan biasa di mana setiap elemen diberikan indeks berangka, bermula dari 0 dan meningkat. Setiap elemen tatasusunan bersekutu mengandungi pasangan nilai kunci, dengan kuncinya ialah rentetan dan nilainya boleh berupa sebarang jenis nilai.

Apabila anda berurusan dengan beberapa tatasusunan dua dimensi, anda biasanya menggunakan indeks berangka untuk mengakses elemennya. Walau bagaimanapun, apabila anda ingin mengakses elemen tatasusunan dua dimensi, menggunakan indeks berangka boleh menjadi sukar kerana ia tidak mempunyai makna yang jelas. Untuk menyusun dan mengakses elemen tatasusunan dua dimensi dengan lebih baik, anda boleh menukarnya kepada tatasusunan bersekutu.

Berikut ialah contoh tatasusunan dua dimensi:

$array = array(
    array('name' => 'John', 'age' => 30),
    array('name' => 'Jane', 'age' => 25),
    array('name' => 'Bob', 'age' => 40)
);

Tatasusunan mengandungi tiga elemen, setiap elemen ialah tatasusunan, termasuk maklumat nama dan umur. Mengakses dan memanipulasinya menggunakan indeks digital boleh mengelirukan dan sukar. Oleh itu, menukarnya kepada tatasusunan bersekutu akan memudahkan anda mengakses elemennya.

Sekarang mari kita lihat cara menukar tatasusunan yang diindeks secara berangka 2D kepada tatasusunan bersekutu. Dalam PHP, anda boleh menggunakan fungsi array_column() untuk mencapai ini. Fungsi ini mengembalikan nilai kunci yang ditentukan daripada lajur dalam tatasusunan berbilang dimensi. Anda boleh menukar tatasusunan terindeks berangka dua dimensi kepada tatasusunan bersekutu dengan menggunakan fungsi array_column().

Berikut ialah contoh kod:

$array = array(
    array('name' => 'John', 'age' => 30),
    array('name' => 'Jane', 'age' => 25),
    array('name' => 'Bob', 'age' => 40)
);
 
$keys = array('name', 'age');
 
$result = array();
foreach($array as $row) {
    $result[] = array_combine($keys, $row);
}
 
print_r($result);

Dalam contoh ini, kami mentakrifkan tatasusunan $keys yang mengandungi nama kunci berkaitan yang ingin kami gunakan. Kami kemudian menggunakan fungsi array_combine() untuk menggabungkan kekunci dalam tatasusunan $keys dengan nilai dalam tatasusunan $row, mencipta tatasusunan bersekutu baharu untuk menyimpan maklumat baris. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan tatasusunan bersekutu.

Kod di atas akan mengeluarkan yang berikut:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 30
        )
 
    [1] => Array
        (
            [name] => Jane
            [age] => 25
        )
 
    [2] => Array
        (
            [name] => Bob
            [age] => 40
        )
)

Seperti yang anda lihat, dalam contoh ini, kami berjaya menukar tatasusunan indeks angka 2D kepada tatasusunan bersekutu. Kini anda boleh mengakses dan memanipulasi data dalam tatasusunan dengan lebih mudah.

Untuk meringkaskan, menggunakan fungsi array_column() dan fungsi array_combine(), seseorang boleh menukar tatasusunan berindeks berangka dua dimensi kepada tatasusunan bersekutu dengan mudah. Ini adalah teknik yang sangat berguna yang memudahkan anda memanipulasi dan mengakses data dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk menukar indeks dua dimensi 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