Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menghimpunkan Tatasusunan 2D mengikut Nilai Lajur ke dalam Tatasusunan 3D?

Bagaimana untuk Menghimpunkan Tatasusunan 2D mengikut Nilai Lajur ke dalam Tatasusunan 3D?

Susan Sarandon
Susan Sarandonasal
2024-11-02 17:28:291019semak imbas

How to Group a 2D Array by Column Value into a 3D Array?

Kumpulkan Data Tatasusunan 2D Menggunakan Nilai Lajur untuk Tatasusunan 3D

Dalam pengaturcaraan, selalunya perlu untuk memanipulasi dan mengatur struktur data dengan berkesan. Mengelompokkan data berdasarkan kriteria tertentu adalah tugas biasa. Artikel ini meneroka cara mengumpulkan tatasusunan 2D menggunakan nilai lajur untuk mencipta tatasusunan 3D.

Pertimbangkan tatasusunan 2D berikut:

[
    ['cust' => 'XT8900', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8944', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8922', 'type' => 'premier', 'level' => 3],
    ['cust' => 'XT8816', 'type' => 'permier', 'level' => 3],
    ['cust' => 'XT7434', 'type' => 'standard', 'level' => 7],
]

Objektif kami adalah untuk mengumpulkan data ini mengikut ' lajur level', yang menghasilkan tatasusunan 3D dengan berkesan. Output yang diingini kelihatan seperti ini:

Array (

   [1] => Array (
          [0] => Array (
                    [cust] => XT8900
                    [type] => standard
                    )
          [1] => Array (
                    [cust] => XT8944
                    [type] => standard
                    )
          )

   [3] => Array (
          [2] => Array (
                 [cust] => XT8922
                 [type] => premier
                 )

          [3] => Array (
                 [cust] => XT8816
                 [type] => permier
                 )
          )

   [7] => Array (
          [4] => Array (
                 [cust] => XT7434
                 [type] => standard
                 )
          )
)

Pendekatan Optimum

Penyelesaian yang paling berkesan ialah mencipta tatasusunan 3D secara terus jika boleh. Walau bagaimanapun, jika ini tidak boleh dilaksanakan, kita boleh menggunakan tatasusunan sementara perantaraan untuk mengisih:

<code class="php">foreach ($input_arr as $key => &$entry) {
    $level_arr[$entry['level']][$key] = $entry;
}</code>

Ini menghasilkan struktur tatasusunan 3D yang diingini. Adalah penting untuk mempertimbangkan membina tatasusunan dalam format akhir dari awal jika boleh, untuk prestasi optimum.

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Tatasusunan 2D mengikut Nilai Lajur ke dalam Tatasusunan 3D?. 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