Dalam PHP, pembangun selalunya perlu berurusan dengan struktur data berbilang dimensi yang diperoleh daripada pelbagai sumber, dan struktur data ini mungkin mengandungi jenis data yang sangat kompleks. Tatasusunan berbilang dimensi ialah alat yang sangat berguna apabila berurusan dengan struktur data ini, tetapi dalam beberapa kes, kita mungkin perlu menukar tatasusunan berbilang dimensi kepada tatasusunan dua dimensi.
Dalam artikel ini, kami akan meneroka cara menggunakan PHP untuk menukar tatasusunan berbilang dimensi kepada tatasusunan dua dimensi untuk keperluan pemprosesan data yang lebih umum.
Untuk menunjukkan cara menukar tatasusunan berbilang dimensi kepada tatasusunan dua dimensi, kita perlu mentakrifkan tatasusunan berbilang dimensi terlebih dahulu. Kami akan mencipta tatasusunan "Buah" dengan tiga kategori utama, setiap satu mengandungi tiga entri berbeza.
$fruits = array(
"apples" => array( array("brand" => "Granny Smith", "color" => "green", "price" => 0.75), array("brand" => "Fuji", "color" => "red", "price" => 0.50), array("brand" => "Golden Delicious", "color" => "yellow", "price" => 0.60) ), "oranges" => array( array("brand" => "Valencia", "color" => "orange", "price" => 0.80), array("brand" => "Navel", "color" => "orange", "price" => 0.85), array("brand" => "Blood", "color" => "red", "price" => 1.10) ), "bananas" => array( array("brand" => "Cavendish", "color" => "yellow", "price" => 0.25), array("brand" => "Lady Finger", "color" => "green", "price" => 0.30), array("brand" => "Red Dacca", "color" => "red", "price" => 0.35) )
);
Dalam tatasusunan di atas, kami telah mencipta susunan buah-buahan dengan tiga kategori, di mana setiap kategori mengandungi Tiga jenama berbeza, kombinasi warna dan harga.
Sekarang kita telah menentukan tatasusunan berbilang dimensi dan memahami cara ia disusun, kita boleh mula menulis kod kepada Tukar ia kepada tatasusunan 2D.
Kita boleh menggunakan fungsi array_map PHP, yang menggunakan fungsi panggil balik untuk setiap elemen dalam tatasusunan berbilang dimensi dan mengembalikan tatasusunan baharu yang mengandungi hasil fungsi panggil balik.
Berikut ialah kod sampel yang mengandungi fungsi panggil balik yang menukar tatasusunan berbilang dimensi kepada tatasusunan dua dimensi:
$flat_fruits = array();
array_map(function ($kumpulan) gunakan (&$flat_fruits) {
foreach ($group as $item) { $flat_fruits[] = array( "category" => array_keys($group)[0], "brand" => $item["brand"], "color" => $item["color"], "price" => $item["price"] ); }
}, $fruits);
Dalam kod di atas, kami mula-mula mencipta tatasusunan baharu bernama $flat_fruits untuk menyimpan hasil kami yang ditukar. Kami kemudian menggunakan fungsi array_map untuk lelaran melalui setiap entri tatasusunan $fruits dan menyerahkannya kepada fungsi tanpa nama yang melakukan beberapa operasi pada entri tersebut.
Dalam fungsi tanpa nama ini, kami mula-mula menggunakan gelung foreach untuk melelakan semua item yang mungkin dalam setiap kategori. Untuk setiap item, kami membalutnya dalam tatasusunan baharu dan menyimpan jenama, warna, harga dan kategori item (di sini kami hanya menggunakan nama kategori). Akhir sekali, kami menambah tatasusunan baharu ini pada tatasusunan $flat_fruits, yang menjadi tatasusunan 2D kami yang ditukar.
Untuk mengesahkan bahawa kod kami berfungsi, kami hanya boleh mengeluarkan tatasusunan $flat_fruits dan melihat nilai yang ditukar. Berikut ialah kod yang menghasilkan tatasusunan $flat_fruits:
foreach ($flat_fruits as $item) {
echo $item["category"] . " > " . $item["brand"] . " (" . $item["color"] . ", $" . $item["price"] . ")\n";
}
Dalam kod di atas, kami menggunakan foreach gelung untuk Berulang pada setiap item dalam tatasusunan $flat_fruits. Untuk setiap item, kami memformat kandungannya ke dalam rentetan dan mencetaknya ke terminal.
Keluaran harus menyerupai berikut:
epal > Smith (hijau, $0.75)
epal > kuning, $0.6)
oren > Valencia (oren, $0.8)
oren > oren > $0.25)
pisang > Lady Finger (hijau, $0.3)
pisang > Red Dacca (merah, $0.35)
Seperti yang anda lihat, kami berjaya menukar tatasusunan berbilang dimensi kepada binari tatasusunan dimensi tatasusunan, dan hasilnya diformat dan dikeluarkan. Ia boleh dilihat bahawa fungsi array_map PHP adalah alat yang sangat berguna untuk memproses tatasusunan berbilang dimensi. Ia membolehkan pembangun beroperasi dengan mudah pada struktur data berbilang dimensi dan boleh menggunakan beberapa logik transformasi dengan mudah untuk mengubah data kepada sebarang format yang dikehendaki.
Atas ialah kandungan terperinci php pelbagai dimensi kepada tatasusunan dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!