Rumah pembangunan bahagian belakang tutorial php php 无限分门别类 树形数据 格式化

php 无限分门别类 树形数据 格式化

Jun 13, 2016 pm 01:18 PM
array gt id name pid

php 无限分类 树形数据 格式化

?

<?php function genTree($items,$id='id',$pid='pid',$son = 'children'){
	$tree = array(); //格式化的树
	$tmpMap = array();  //临时扁平数据
	
	foreach ($items as $item) {
		$tmpMap[$item[$id]] = $item;
	}
	
	foreach ($items as $item) {
		if (isset($tmpMap[$item[$pid]])) {
			$tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
		} else {
			$tree[] = &$tmpMap[$item[$id]];
		}
	}
	unset($tmpMap);
	return $tree;
}

$items1 = array(
        array('id' => 1, 'pid' =&gt; 0, 'name' =&gt; '一级11' ),
        array('id' =&gt; 11, 'pid' =&gt; 0, 'name' =&gt; '一级12' ),
        array('id' =&gt; 2, 'pid' =&gt; 1, 'name' =&gt; '二级21' ),
        array('id' =&gt; 10, 'pid' =&gt; 11, 'name' =&gt; '二级22' ),
        array('id' =&gt; 3, 'pid' =&gt; 1, 'name' =&gt; '二级23' ),
        array('id' =&gt; 12, 'pid' =&gt; 11, 'name' =&gt; '二级24' ),
        array('id' =&gt; 9, 'pid' =&gt; 1, 'name' =&gt; '二级25' ),
        array('id' =&gt; 14, 'pid' =&gt; 1, 'name' =&gt; '二级26' ),
        array('id' =&gt; 4, 'pid' =&gt; 9, 'name' =&gt; '三级31' ),
        array('id' =&gt; 6, 'pid' =&gt; 9, 'name' =&gt; '三级32' ),
        array('id' =&gt; 7, 'pid' =&gt; 4, 'name' =&gt; '四级41' ),
        array('id' =&gt; 8, 'pid' =&gt; 4, 'name' =&gt; '四级42' ),
        array('id' =&gt; 5, 'pid' =&gt; 4, 'name' =&gt; '四级43' ),
        array('id' =&gt; 13, 'pid' =&gt; 4, 'name' =&gt; '四级44' ),
        array('id' =&gt; 15, 'pid' =&gt; 8, 'name' =&gt; '五级51' ),
        array('id' =&gt; 16, 'pid' =&gt; 8, 'name' =&gt; '五级52' ),
        array('id' =&gt; 17, 'pid' =&gt; 8, 'name' =&gt; '五级53' ),
        array('id' =&gt; 18, 'pid' =&gt; 16, 'name' =&gt; '六级64' ),
); 

$time1 = microtime(true);
var_dump(genTree($items1));
$time2 = microtime(true);
echo "function 时间1:".($time2-$time1);
?&gt;
Salin selepas log masuk
Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ID Apple ini belum lagi digunakan dalam iTunes Store: Betulkan ID Apple ini belum lagi digunakan dalam iTunes Store: Betulkan Jun 10, 2024 pm 05:42 PM

ID Apple ini belum lagi digunakan dalam iTunes Store: Betulkan

Betulkan ralat cakera ID acara 55, 50, 98, 140 dalam pemapar acara Betulkan ralat cakera ID acara 55, 50, 98, 140 dalam pemapar acara Mar 19, 2024 am 09:43 AM

Betulkan ralat cakera ID acara 55, 50, 98, 140 dalam pemapar acara

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Apakah perbezaan antara Huawei GT3 Pro dan GT4?

Di manakah saya boleh mencari ID Alibaba? Di manakah saya boleh mencari ID Alibaba? Mar 08, 2024 pm 09:49 PM

Di manakah saya boleh mencari ID Alibaba?

ID Peristiwa 4660: Objek dipadamkan [Betulkan] ID Peristiwa 4660: Objek dipadamkan [Betulkan] Jul 03, 2023 am 08:13 AM

ID Peristiwa 4660: Objek dipadamkan [Betulkan]

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Betulkan: Alat snipping tidak berfungsi dalam Windows 11

Tempat untuk menyemak ID Video Tencent Tempat untuk menyemak ID Video Tencent Feb 24, 2024 pm 06:25 PM

Tempat untuk menyemak ID Video Tencent

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Jul 29, 2023 am 08:22 AM

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone

See all articles