php - Wie erhält Laravel's Baum die endgültige übergeordnete Klassen-ID eines bestimmten Datensatzes?
某草草
某草草 2017-06-06 09:54:07
0
3
672

Zum Beispiel möchte ich die letzte übergeordnete Klasse des kleinen schwarzen Schweins mit der ID 10 erhalten. In der Tabelle ist die parent_id 9, aber was ich erhalten möchte, ist 5. Gibt es eine Möglichkeit, ob ich das beurteilen möchte? Ein bestimmter Datensatz gehört zu dieser letzten übergeordneten Klasse

某草草
某草草

Antworte allen(3)
小葫芦

做个递归查找,然后找出parent_id=null时的那个就可以了

仅有的幸福

有2种做法可以尝试:

  1. 把所有的id和parent_id查询出来,然后进行搜索,这样固定的sql语句可以进行缓存。

  2. 添加一个新字段root_id,用于记录根节点,这样就不需要搜索,直接查询即可,只是在插入的时候,需要查询一次。

漂亮男人
    $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);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!