


Menukar Senarai Tatasusunan kepada Struktur Pokok
Dalam masalah ini, kami ditugaskan untuk mengubah tatasusunan rata elemen menjadi struktur seperti pokok hierarki. Tatasusunan input terdiri daripada objek dengan tiga sifat: id, induk dan nama. Output mestilah struktur pepohon di mana setiap nod mewakili elemen dalam tatasusunan input dan mempunyai senarai nod anak kepunyaannya.
Untuk menyelesaikan masalah ini, kita tidak boleh bergantung pada kaedah seperti set bersarang kerana kekangan pangkalan data. Sebaliknya, kami menggunakan algoritma rekursif untuk membina pepohon.
$arr = array( array('id' => 100, 'parentid' => 0, 'name' => 'a'), array('id' => 101, 'parentid' => 100, 'name' => 'a'), array('id' => 102, 'parentid' => 101, 'name' => 'a'), array('id' => 103, 'parentid' => 101, 'name' => 'a'), ); $new = array(); foreach ($arr as $a) { $new[$a['parentid']][] = $a; } $tree = createTree($new, array($arr[0]));
Dalam langkah pertama, kami melingkari tatasusunan input dan elemen kumpulan oleh induk mereka untuk mencipta tatasusunan baharu di mana setiap kunci mewakili id ibu bapa , dan nilainya ialah tatasusunan anak-anaknya. Selepas itu, kami menggunakan fungsi pembantu createTree untuk membina pepohon secara rekursif.
function createTree(&$list, $parent) { $tree = array(); foreach ($parent as $k => $l) { if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } $tree[] = $l; } return $tree; }
Fungsi createTree mengambil dua parameter: tatasusunan $list tersusun semula dan tatasusunan $induk yang mewakili tahap semasa dalam pepohon. Dalam fungsi tersebut, kami mengulangi tatasusunan $parent dan memeriksa jika $list mengandungi mana-mana kanak-kanak untuk elemen semasa. Jika kanak-kanak ditemui, kami secara rekursif memanggil createTree untuk membina subpokok bagi elemen itu dan menambahkannya sebagai harta kanak-kanak bagi elemen semasa. Akhir sekali, kami menambahkan elemen semasa pada tatasusunan $tree dan mengembalikan pepohon.
Dengan mengikuti algoritma ini, kami boleh membina struktur pepohon dengan cekap daripada senarai tatasusunan yang disediakan, menjana perwakilan bersarang bagi perhubungan hierarki antara unsur-unsur.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Senarai Tatasusunan Rata ke dalam Struktur Pokok Hierarki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Alipay Php ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa