Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php

Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php

PHPz
PHPzasal
2023-04-27 09:08:331102semak imbas

Dalam bahasa PHP, tatasusunan dua dimensi ialah jenis data yang sangat biasa Ia terdiri daripada pelbagai tatasusunan satu dimensi, setiap tatasusunan satu dimensi mempunyai nilai indeksnya sendiri. Kadangkala, kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk operasi yang lebih mudah.

Dalam artikel ini, kami akan meneroka cara menukar tatasusunan 2D kepada tatasusunan 1D menggunakan PHP dan menyediakan beberapa kod sampel untuk rujukan anda.

Kita akan melihat terlebih dahulu apakah tatasusunan dua dimensi dan sebab kita perlu menukarnya kepada tatasusunan satu dimensi.

Apakah tatasusunan dua dimensi?

Ringkasnya, tatasusunan dua dimensi dalam PHP ialah tatasusunan, dan unsur tatasusunan ini ialah tatasusunan satu dimensi. Dalam pengaturcaraan berorientasikan objek, tatasusunan dua dimensi juga boleh dipanggil tatasusunan tatasusunan.

Susun atur dua dimensi terdiri daripada tatasusunan satu dimensi berbilang dan setiap tatasusunan satu dimensi mempunyai nilai indeksnya sendiri. Secara amnya, nilai indeks tatasusunan dua dimensi boleh menjadi nombor atau rentetan, tetapi nilai indeks satu dimensi tatasusunan dua dimensi mestilah nombor, jika tidak ralat akan berlaku.

Mengapa anda perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi?

Apabila memproses beberapa data, biasanya perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Ini menjadikannya lebih mudah untuk mengendalikan data. Katakan anda mempunyai tatasusunan 2D yang menyimpan markah pelajar. Anda mungkin ingin mendapatkan jumlah markah semua pelajar, atau anda mungkin hanya ingin menanyakan keputusan pelajar tertentu, dsb. Dalam kes ini, menukar tatasusunan kepada tatasusunan satu dimensi boleh memudahkan anda mencari data yang anda perlukan.

Kaedah 1: Gunakan gelung foreach

Kaedah paling mudah ialah menggunakan gelung foreach untuk melintasi tatasusunan dan menambah semua elemen pada tatasusunan satu dimensi baharu.

Kod sampel:

// 假设我们有一个二维数组
$two_dimensional_array = array(
    array('id' => 1, 'name' => 'Tom', 'age' => 20),
    array('id' => 2, 'name' => 'Kate', 'age' => 25),
    array('id' => 3, 'name' => 'Bob', 'age' => 30),
);

// 创建一个新的一维数组
$one_dimensional_array = array();

// 循环遍历二维数组
foreach($two_dimensional_array as $key => $value) {
    // 循环遍历一维数组,将值添加到新的一维数组中
    foreach($value as $k => $v) {
        $one_dimensional_array[] = $v;
    }
}

// 打印一维数组
print_r($one_dimensional_array);

Output:

Array
(

[0] => 1
[1] => Tom
[2] => 20
[3] => 2
[4] => Kate
[5] => 25
[6] => 3
[7] => Bob
[8] => 30

)

Kaedah 2: Gunakan fungsi array_reduce

Fungsi array_reduce dalam PHP boleh menggunakan fungsi untuk menggabungkan tatasusunan secara berulang menjadi satu nilai. Parameter pertama fungsi ini ialah tatasusunan, dan parameter kedua ialah fungsi panggil balik.

Fungsi panggil balik memerlukan dua parameter, penumpuk dan nilai semasa. Ia menambah penumpuk dan nilai semasa dan mengembalikan hasilnya. Nilai pulangan bagi fungsi array_reduce ialah nilai penumpuk akhir.

Dalam contoh ini, kami telah menggunakan fungsi array_merge untuk menggabungkan semua nilai ke dalam tatasusunan.

Kod sampel:

// 假设我们有一个二维数组
$two_dimensional_array = array(
    array('id' => 1, 'name' => 'Tom', 'age' => 20),
    array('id' => 2, 'name' => 'Kate', 'age' => 25),
    array('id' => 3, 'name' => 'Bob', 'age' => 30),
);

// 使用array_reduce函数将二维数组转换为一维数组
$one_dimensional_array = array_reduce($two_dimensional_array, 'array_merge', array());

// 打印一维数组
print_r($one_dimensional_array);

Output:

Array
(

[id] => 3
[name] => Bob
[age] => 30

)

Seperti yang anda lihat, array_reduce fungsi Hanya data tatasusunan terakhir dikembalikan.

Kaedah 3: Gunakan fungsi array_column

Cara lain untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi ialah menggunakan fungsi array_column. Fungsi ini mengembalikan lajur tatasusunan yang ditentukan oleh kunci yang ditentukan.

Kod sampel:

// 假设我们有一个二维数组
$two_dimensional_array = array(
    array('id' => 1, 'name' => 'Tom', 'age' => 20),
    array('id' => 2, 'name' => 'Kate', 'age' => 25),
    array('id' => 3, 'name' => 'Bob', 'age' => 30),
);

// 使用array_column函数将二维数组转换为一维数组
$one_dimensional_array = array_column($two_dimensional_array, 'name');

// 打印一维数组
print_r($one_dimensional_array);

Output:

Array
(

[0] => Tom
[1] => Kate
[2] => Bob

)

Anda boleh menentukan kekunci yang berbeza mengikut ke kembalikan lajur tatasusunan yang berbeza.

Ringkasan:

Dalam PHP, terdapat banyak cara untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Menggunakan gelung foreach untuk lelaran pada tatasusunan ialah kaedah yang paling biasa. Anda juga boleh menggunakan fungsi array_reduce atau fungsi array_column untuk mencapai penukaran.

Tatasusunan satu dimensi yang ditukar boleh dikendalikan dan ditanya dengan lebih mudah. Menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi ialah helah yang sangat berguna jika anda perlu mengendalikan tatasusunan berbilang dimensi yang kompleks dalam PHP.

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