php - Saya ingin bertanya kepada anda, Maharaja Algoritma, bagaimana untuk menggabungkan tatasusunan dengan hubungan ibu bapa-anak dan cara menggabungkannya menjadi tatasusunan yang disusun mengikut hierarki.
習慣沉默
習慣沉默 2017-05-31 10:34:56
0
2
1023
$data = [
            ['id' => 1,'pid' => 0,'name' => '销售部'],
            ['id' => 2,'pid' => 0,'name' => '技术部'],
            ['id' => 3,'pid' => 2,'name' => '前端'],
            ['id' => 4,'pid' => 1,'name' => '电话销售'],
            ['id' => 5,'pid' => 2,'name' => '后端'],
            ['id' => 6,'pid' => 1,'name' => '电商销售'],
            ['id' => 7,'pid' => 5,'name' => 'php'],
            ['id' => 8,'pid' => 7,'name' => 'php子部门'],
            ['id' => 9,'pid' => 6,'name' => '淘宝销售'],
            ['id' => 10,'pid' => 4,'name' => '打电话员'],
    ];

Dicapai sebagai:

$data = [
            ['id' => 1,'pid' => 0,'name' => '销售部','level' => 0],
            ['id' => 4,'pid' => 1,'name' => '电话销售','level' => 1],
            ['id' => 10,'pid' => 4,'name' => '打电话员','level' =>2],
            ['id' => 6,'pid' => 1,'name' => '电商销售','level' => 2],
            ['id' => 9,'pid' => 6,'name' => '淘宝销售','level' =>1],

            ['id' => 2,'pid' => 0,'name' => '技术部','level' => 0],
            ['id' => 3,'pid' => 2,'name' => '前端','level' => 1],
            ['id' => 5,'pid' => 2,'name' => '后端','level' => 1],
            ['id' => 7,'pid' => 5,'name' => 'php','level' => 2],
            ['id' => 8,'pid' => 7,'name' => 'php子部门','level' => 3],
    ];
習慣沉默
習慣沉默

membalas semua(2)
大家讲道理

Mula-mula dapatkan pasangan perhubungan tatasusunan sepadan dengan pid sebagai kunci

>  $a1 =   pid[0] = [[id, pid=0, name],[id, pid=0, name]]
>          pid[1] = [[id, pid=1, name],[id, pid=1, name]]

       

Tulis fungsi rekursif

function buildArr(& $a, $start, $level) {
    foreach($a[$start] as $pid => $aa) {
        $a[$start][$pid]['level'] = $level;
        if(isset($a[$pid])) {
            buildArr($a, $pid, $level + 1);
        }
    }
}

Panggil: buildArr($a1, 0, 0);

Kemudian gelung untuk mendapatkan kandungan $a1

迷茫

Pertama sekali, anda perlu menjelaskan bahawa tidak boleh ada rujukan bulat Contohnya, id=0 pid=1 dan id=1 pid=0 tidak boleh wujud pada masa yang sama struktur dan akhirnya cara melintasi setiap pokok , urutan depan, tengah, belakang, lintasan aras, dll., ia sangat mudah

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!