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

Bagaimana untuk menukar tatasusunan dua dimensi yang diindeks php kepada satu dimensi

WBOY
WBOYasal
2023-05-11 10:28:06418semak imbas

Dalam pengaturcaraan PHP, tatasusunan biasanya merupakan alat penting yang digunakan untuk menyimpan dan memproses data. Dalam sesetengah kes, kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk memudahkan pemprosesan dan penggunaan seterusnya. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP untuk melaksanakan fungsi ini.

Pertama, kita perlu menentukan tatasusunan dua dimensi sebagai contoh. Berikut ialah contoh mudah:

$cars = array(
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

Susun atur di atas mewakili empat kereta, termasuk nama kereta, jumlah jualan dan inventori. Seterusnya, kami akan menunjukkan beberapa kaedah untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

  1. Menggunakan gelung foreach

Kita boleh menggunakan gelung foreach untuk melintasi setiap elemen tatasusunan dua dimensi dan menukarnya menjadi elemen dalam tatasusunan satu dimensi . Berikut ialah pelaksanaan kod:

$flat_cars = array();
foreach($cars as $car) {
  foreach($car as $detail) {
    $flat_cars[] = $detail;
  }
}

Dalam kod di atas, tatasusunan kosong $flat_cars akan dibuat. Melalui gelung foreach, setiap elemen $car dalam tatasusunan dua dimensi $cars dilalui dan diuraikan menjadi $detail tatasusunan satu dimensi. Kemudian, tambahkan elemen dalam $detail pada tatasusunan $flat_cars. Akhir sekali, $flat_cars menjadi tatasusunan satu dimensi, di mana setiap elemen sepadan dengan elemen dalam tatasusunan dua dimensi asal $cars.

  1. Gunakan fungsi array_reduce

Fungsi array_reduce PHP boleh mengumpul tatasusunan melalui fungsi panggil balik yang ditentukan dan mengembalikan hasil terkumpul terakhir. Kita boleh menggunakan fungsi ini untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

$flat_cars = array_reduce($cars, 'array_merge', array());

Dalam kod di atas, mula-mula kita panggil fungsi array_reduce, masukkan array asal $cars dan tentukan fungsi panggil balik 'array_merge' untuk pengiraan terkumpul. Fungsi 'array_merge' akan digabungkan sebagai parameter ke dalam fungsi array_reduce. Akhir sekali, dengan menentukan tatasusunan kosong sebagai parameter ketiga fungsi array_reduce, tatasusunan $cars boleh ditukar menjadi tatasusunan satu dimensi $flat_cars.

  1. Gunakan fungsi array_column

Fungsi array_column ialah fungsi yang sangat praktikal selepas PHP 5.5 Ia boleh mengekstrak nilai lajur tertentu dalam tatasusunan dan mengembalikan satu tatasusunan -dimensi . Kita boleh menggunakannya untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

$flat_cars = array_column($cars, null, 0);

Dalam kod di atas, kami memanggil fungsi array_column, menghantar array asal $cars dan parameter kedua adalah nol. Parameter pertama $cars menunjukkan bahawa tatasusunan lajur tertentu perlu diekstrak, manakala parameter kedua null menunjukkan bahawa keseluruhan baris data akan diekstrak. Parameter terakhir 0 bermakna elemen pertama lajur yang ditentukan (iaitu nama kereta) akan diekstrak dan tatasusunan satu dimensi akan dikembalikan. Tatasusunan satu dimensi ini mengandungi semua elemen tatasusunan dua dimensi $cars.

Ringkasan

Dalam pengaturcaraan PHP, menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi ialah operasi yang sangat biasa. Dalam artikel ini, kami memperkenalkan tiga kaedah untuk mencapai fungsi ini, menggunakan gelung foreach, fungsi array_reduce dan fungsi array_column. Setiap kaedah mempunyai senario terpakai, kelebihan dan kekurangannya, dan anda perlu memilih mengikut situasi sebenar semasa menggunakannya.

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