Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan php kepada tatasusunan pokok

Bagaimana untuk menukar tatasusunan php kepada tatasusunan pokok

zbt
zbtasal
2023-08-04 17:30:481309semak imbas

Cara menukar tatasusunan PHP kepada tatasusunan pokok: 1. Fahami struktur dan konsep tatasusunan pokok Dalam tatasusunan pepohon, setiap elemen mempunyai pengecam unik dan pengecam elemen induk 2. Sediakan tatasusunan Contoh, buat penyatuan biasa tatasusunan, yang mengandungi beberapa item dan pengecam unsur induknya;

Bagaimana untuk menukar tatasusunan php kepada tatasusunan pokok

Persekitaran pengendalian tutorial ini: sistem windows10, versi php8.1.3, komputer DELL G3.

Dalam PHP, tatasusunan ialah struktur data yang sangat biasa dan praktikal. Kadangkala, kita perlu menukar tatasusunan biasa kepada tatasusunan pokok untuk menyusun dan memaparkan data dengan lebih mudah. Artikel ini akan memperkenalkan cara menukar tatasusunan PHP kepada tatasusunan pokok.

1 Memahami struktur dan konsep tatasusunan pokok

Dalam tatasusunan pokok, setiap elemen mempunyai pengecam unik dan pengecam elemen induk. Pengecam elemen induk boleh dipadankan dengan pengecam elemen anak untuk menentukan hubungan hierarki antara elemen. Struktur tatasusunan pokok adalah serupa dengan struktur pokok, di mana elemen atas dipanggil elemen akar dan elemen anak boleh menjadi nod daun atau nod cawangan lain.

2. Sediakan tatasusunan sampel

Sebagai contoh, kami mencipta tatasusunan bersekutu biasa yang mengandungi beberapa item dan pengecam elemen induknya seperti berikut:

$data = array(
array('id' => 1, 'name' => '项目1', 'parent_id' => 0),
array('id' => 2, 'name' => '项目1.1', 'parent_id' => 1),
array('id' => 3, 'name' => '项目1.2', 'parent_id' => 1),
array('id' => 4, 'name' => '项目1.1.1', 'parent_id' => 2),
array('id' => 5, 'name' => '项目2', 'parent_id' => 0),
array('id' => 6, 'name' => '项目2.1', 'parent_id' => 5),
array('id' => 7, 'name' => '项目2.2', 'parent_id' => 5),
);

Tatasusunan di atas mengandungi beberapa item, di mana Elemen yang pengecam elemen induknya ialah 0 ialah unsur akar.

3. Buat fungsi penukaran

Seterusnya, kami akan mencipta fungsi untuk menukar tatasusunan biasa kepada tatasusunan pokok. Pertama, kita perlu menentukan fungsi rekursif untuk melintasi tatasusunan dan membina pokok. Fungsi ini akan menerima dua parameter: tatasusunan input dan pengecam elemen induk.

function buildTree(array $data, $parentId = 0) {
$tree = array();
foreach ($data as $row) {
if ($row['parent_id'] == $parentId) {
$children = buildTree($data, $row['id']);
if ($children) {
$row['children'] = $children;
}
$tree[] = $row;
}
}
return $tree;
}

Dalam kod di atas, kita mula-mula mencipta tatasusunan $tree kosong, dan kemudian menggunakan gelung foreach untuk melintasi tatasusunan input $data. Jika pengecam elemen induk elemen adalah sama dengan pengecam elemen induk yang diluluskan, tatasusunan anak bernama $children dibuat dan fungsi buildTree() akan dipanggil secara rekursif untuk menambahkan elemen anak kepada $children. Jika $children bukan tatasusunan kosong, tambahkannya pada kekunci "children" pada baris semasa. Akhir sekali, tambahkan baris semasa pada tatasusunan $tree.

4 Panggil fungsi penukaran dan keluarkan hasilnya

Seterusnya, kami hanya memanggil fungsi buildTree() dan lulus tatasusunan sampel sebagai parameter. Kami kemudiannya boleh menggunakan fungsi print_r() atau fungsi var_dump() untuk mencetak keputusan untuk mengesahkan sama ada penukaran berjaya.

$treeData = buildTree($data);
print_r($treeData);

Jalankan kod di atas dan anda akan melihat output tatasusunan pokok:

Array
(
[0] => Array
(
[id] => 1
[name] => 项目1
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 2
[name] => 项目1.1
[parent_id] => 1
[children] => Array
(
[0] => Array
(
[id] => 4
[name] => 项目1.1.1
[parent_id] => 2
)
)
)
[1] => Array
(
[id] => 3
[name] => 项目1.2
[parent_id] => 1
)
)
)
[1] => Array
(
[id] => 5
[name] => 项目2
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 6
[name] => 项目2.1
[parent_id] => 5
)
[1] => Array
(
[id] => 7
[name] => 项目2.2
[parent_id] => 5
)
)
)
)

Seperti yang anda lihat, kami berjaya menukar tatasusunan biasa kepada tatasusunan pokok.

Ringkasan

Artikel ini menerangkan cara menukar tatasusunan PHP kepada tatasusunan pokok. Dengan memahami struktur dan konsep tatasusunan pokok, cipta fungsi rekursif untuk membina pepohon dan panggil fungsi itu untuk mengubah tatasusunan. Dengan cara ini, anda boleh menyusun dan memaparkan data anda dengan mudah

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan php kepada tatasusunan pokok. 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