php - Bagaimanakah Laravel's Baum memperoleh id kelas induk akhir bagi rekod tertentu?
某草草
某草草 2017-06-06 09:54:07
0
3
726

Sebagai contoh, saya ingin mendapatkan kelas induk terakhir babi hitam kecil dengan ID 10. Dalam jadual, parent_id ialah 9, tetapi apa yang saya ingin dapatkan ialah 5. Adakah ada cara atau saya ingin menilai sama ada rekod tertentu tergolong dalam kelas ibu bapa terakhir ini

某草草
某草草

membalas semua(3)
小葫芦

Lakukan carian rekursif, kemudian cari yang mempunyai parent_id=null

仅有的幸福

Ada 2 kaedah yang anda boleh cuba:

  1. Soal semua id dan parent_id, dan kemudian cari, supaya pernyataan sql tetap boleh dicache.

  2. Tambahkan root_id medan baharu untuk merekodkan nod akar, jadi tidak perlu mencari, hanya bertanya terus Anda hanya perlu menanyakannya sekali semasa memasukkan.

漂亮男人
    $arr = array(
                array(
                    'id'        => 10,
                    'parent_id' => 9
                    ),
                array(
                    'id'        => 9,
                    'parent_id' => 5
                    ),
                array(
                    'id'        => 5,
                    'parent_id' => null
                    ),
        
        
        );
    function getParentId($arr, $id = 10) {
        foreach ($arr as $val) {
            if($val['id'] == $id) {
                if(!empty($val['parent_id'])) {
                    $id = $val['parent_id'];
                    getParentId($arr, $id);
                }else {
                    return $id;
                }
            }
        }
        return $id;
    }
    
    echo getParentId($arr, 10);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan