Dalam pengaturcaraan, anda mungkin menghadapi keperluan untuk menyusun data dalam tatasusunan berbilang dimensi. Untuk mengurus data kompleks dengan cekap, ia menjadi penting untuk mengumpulkan elemen mengikut kriteria tertentu. Artikel ini menangani cabaran khusus untuk mengumpulkan tatasusunan 2D mengikut nilai dalam lajur tertentu, mengubahnya menjadi tatasusunan 3D untuk visualisasi dan manipulasi yang dipertingkatkan.
Pertimbangkan tatasusunan berbilang dimensi berikut yang mengandungi maklumat pelanggan:
<code class="php">$data = [ ['cust' => 'XT8900', 'type' => 'standard', 'level' => 1], ['cust' => 'XT8944', 'type' => 'standard', 'level' => 1], ['cust' => 'XT8922', 'type' => 'premier', 'level' => 3], ['cust' => 'XT8816', 'type' => 'premier', 'level' => 3], ['cust' => 'XT7434', 'type' => 'standard', 'level' => 7], ];</code>
Objektifnya adalah untuk mengumpulkan rekod pelanggan ini berdasarkan lajur 'peringkat' dan mencipta tatasusunan 3D di mana setiap peringkat mengandungi tatasusunan maklumat pelanggan. Hasil yang diingini sepatutnya kelihatan seperti ini:
<code class="php">$result = [ 1 => [ ['cust' => 'XT8900', 'type' => 'standard'], ['cust' => 'XT8944', 'type' => 'standard'], ], 3 => [ ['cust' => 'XT8922', 'type' => 'premier'], ['cust' => 'XT8816', 'type' => 'premier'], ], 7 => [ ['cust' => 'XT7434', 'type' => 'standard'], ], ];</code>
Terdapat beberapa pendekatan untuk mencapai ini tetapi mari kita terokai penyelesaian yang berkesan:
Mengelompokkan Data Isih:
Sekarang, ulangi melalui yang diisih data dan buat tatasusunan sementara. Untuk setiap entri, dapatkan semula nilai 'level' sebagai kunci dan simpan keseluruhan entri sebagai nilai. Ini secara berkesan akan mengumpulkan rekod pelanggan mengikut tahap.
<code class="php">foreach ($data as $key => &$entry) { $level_arr[$entry['level']][$key] = $entry; }</code>
$level_arr yang terhasil akan mempunyai struktur yang diingini, dengan setiap tahap mengandungi pelbagai maklumat pelanggan.
Menukar kepada Tatasusunan 3D:
Sekarang, tukar $level_arr sementara kepada tatasusunan 3D sasaran. Ini melibatkan penetapan kunci tatasusunan 3D kepada nilai tahap dan nilai kepada tatasusunan pelanggan yang sepadan daripada $level_arr.
<code class="php">$result = []; foreach ($level_arr as $level => $customer_data) { $result[$level] = array_values($customer_data); }</code>
Dengan mengikuti langkah ini, anda boleh mengumpulkan data dalam tatasusunan 2D dengan berkesan menggunakan nilai lajur tertentu dan membina Tatasusunan 3D untuk manipulasi dan visualisasi data yang dipertingkatkan. Pendekatan ini menawarkan fleksibiliti dan kecekapan apabila berurusan dengan struktur data yang kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Tatasusunan 2D menjadi Tatasusunan 3D dengan Mengumpulkan Elemen Berdasarkan Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!