Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan dua dimensi dalam PHP kepada nilai kunci yang ditentukan

Bagaimana untuk menukar tatasusunan dua dimensi dalam PHP kepada nilai kunci yang ditentukan

PHPz
PHPzasal
2023-04-27 09:03:58867semak imbas

Tatasusunan dua dimensi dalam PHP ialah struktur data yang sangat biasa yang boleh digunakan untuk menyimpan sejumlah besar data dan sangat fleksibel. Biasanya, apabila kita memproses tatasusunan dua dimensi, kita perlu menapis elemen tertentu berdasarkan syarat tertentu atau menyusun semula struktur elemen ini. Dalam kes ini, menukar tatasusunan 2D kepada bentuk lain boleh menjadi sangat berguna. Artikel ini akan memperkenalkan cara menggunakan fungsi tatasusunan dalam PHP untuk menukar tatasusunan dua dimensi kepada bentuk nilai kunci yang ditentukan.

1. Apakah tatasusunan dua dimensi?

Tatasusunan dua dimensi ialah struktur data yang terdiri daripada beberapa tatasusunan satu dimensi. Ia boleh dianggap sebagai jadual, dengan setiap baris mewakili tatasusunan satu dimensi dan lajur mewakili elemen dalam tatasusunan satu dimensi.

Sebagai contoh, kod berikut mencipta tatasusunan dua dimensi:

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

Susun atur ini mengandungi dua elemen, setiap elemen ialah tatasusunan satu dimensi yang mengandungi "nama" dan "umur" Dua kekunci dan nilai yang sepadan. Tatasusunan dua dimensi ini boleh mewakili nama dan maklumat umur sekumpulan orang.

2. Penukaran tatasusunan dua dimensi

  1. Tukar tatasusunan satu dimensi kepada pasangan nilai kunci

Sebelum memproses tatasusunan dua dimensi, biarkan kita lihat dahulu Mari lihat cara menukar tatasusunan satu dimensi ke dalam bentuk pasangan nilai kunci yang ditentukan. PHP menyediakan fungsi array_column() yang sangat praktikal untuk mencapai fungsi ini. Fungsi array_column() boleh mengalih keluar lajur tertentu daripada tatasusunan berbilang dimensi dan mengembalikan nilai lajur. Contohnya:

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

$names = array_column($data, "name");
print_r($names);

Output:

Array
(
    [0] => Tom
    [1] => Jerry
)

Dalam kod di atas, kami menggunakan fungsi array_column() untuk mengekstrak lajur "nama" dalam tatasusunan $data dan menyimpannya dalam yang baharu tatasusunan $nama. Dengan cara ini, kita boleh mendapatkan semua maklumat nama dengan mudah.

  1. Tukar tatasusunan dua dimensi ke dalam bentuk nilai kunci yang ditentukan

Dalam pembangunan sebenar, kita biasanya perlu menyusun tatasusunan dua dimensi mengikut keadaan yang berbeza, seperti sebagai umur Kategorikan, atau susun mengikut parap, dsb. Pada masa ini, kita boleh menggunakan fungsi tatasusunan dalam PHP untuk mencapai matlamat ini. Di bawah ini kami akan memperkenalkan beberapa kaedah yang biasa digunakan.

(1) Gunakan fungsi array_reduce()

Fungsi array_reduce() boleh melakukan pengiraan terkumpul pada semua elemen dalam tatasusunan dan mengembalikan hasilnya. Dengan menggunakan fungsi ini, kita boleh menggabungkan elemen dalam tatasusunan dua dimensi mengikut nilai kunci yang ditentukan.

Sebagai contoh, jika kita ingin mengklasifikasikan tatasusunan $data di atas mengikut nilai "umur", kita boleh menggunakan kod berikut:

$result = array_reduce($data, function ($acc, $item) {
    $age = $item['age'];
    if (!isset($acc[$age])) {
        $acc[$age] = array();
    }
    $acc[$age][] = $item;
    return $acc;
}, array());

print_r($result);

Output:

Array
(
    [20] => Array
        (
            [0] => Array
                (
                    [name] => Tom
                    [age] => 20
                )

        )

    [18] => Array
        (
            [0] => Array
                (
                    [name] => Jerry
                    [age] => 18
                )

        )

)

Dalam kod di atas, kami menggunakan fungsi tanpa nama PHP dan fungsi array_reduce(). Parameter pertama $acc bagi fungsi tanpa nama mewakili penumpuk, yang digunakan untuk menyimpan hasil terkumpul, dan parameter kedua $item mewakili setiap elemen dalam tatasusunan. Dalam badan fungsi, kita mula-mula mendapat nilai "umur" elemen, dan kemudian menentukan sama ada tatasusunan yang sepadan dengan nilai "umur" sudah wujud dalam penumpuk Jika ia tidak wujud, buat tatasusunan baharu, akhirnya, tambah elemen ke dalam tatasusunan ini.

(2) Gunakan fungsi array_map()

Fungsi array_map() boleh memproses setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Dengan menggunakan fungsi ini, kita boleh mengubah suai elemen dalam tatasusunan dua dimensi mengikut nilai kunci yang ditentukan.

Sebagai contoh, kod berikut menukar nilai kunci "nama" setiap elemen dalam tatasusunan $data di atas kepada nilai "umur" elemen dan menyimpannya dalam tatasusunan baharu:

$result = array_map(function ($item) {
    $age = $item['age'];
    $item['name'] = $age;
    return $item;
}, $data);

print_r($result);

Output:

Array
(
    [0] => Array
        (
            [name] => 20
            [age] => 20
        )

    [1] => Array
        (
            [name] => 18
            [age] => 18
        )

)

Dalam kod di atas, kami telah menggunakan fungsi tanpa nama PHP dan fungsi array_map(). Parameter $item bagi fungsi tanpa nama mewakili setiap elemen dalam tatasusunan. Dalam badan fungsi, kita mula-mula mendapat nilai "umur" elemen dan kemudian memberikan nilai itu kepada kunci "nama" elemen.

3. Ringkasan

Di atas ialah kaedah menukar tatasusunan dua dimensi dalam PHP kepada nilai kunci tertentu Untuk meringkaskan:

  1. Gunakan lajur_tatasusunan. () berfungsi untuk menukar Menukar tatasusunan satu dimensi ke dalam bentuk pasangan nilai kunci yang ditentukan.
  2. Gunakan fungsi array_reduce() untuk menggabungkan tatasusunan dua dimensi mengikut nilai kunci yang ditentukan.
  3. Gunakan fungsi array_map() untuk mengubah suai elemen dalam tatasusunan dua dimensi mengikut nilai kunci yang ditentukan.

Dalam pembangunan sebenar, kita boleh memilih kaedah yang sesuai untuk memproses elemen dalam tatasusunan dua dimensi untuk memenuhi keperluan perniagaan yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan dua dimensi dalam PHP kepada nilai kunci yang ditentukan. 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