php - Comment Baum de Laravel obtient-il l'identifiant final de classe parent d'un enregistrement donné?
某草草
某草草 2017-06-06 09:54:07
0
3
723

Par exemple, je veux obtenir la classe parent finale du petit cochon noir avec l'ID 10. Dans le tableau, le parent_id est 9, mais ce que je veux obtenir est 5. Y a-t-il un moyen ou je veux juger si ? un certain enregistrement appartient à cette classe parent finale

某草草
某草草

répondre à tous(3)
小葫芦

Faites une recherche récursive, puis trouvez celle lorsque parent_id=null

仅有的幸福

Vous pouvez essayer 2 méthodes :

  1. Interrogez tous les identifiants et parent_id, puis effectuez une recherche afin que les instructions SQL corrigées puissent être mises en cache.

  2. Ajoutez un nouveau champ root_id pour enregistrer le nœud racine, il n'est donc pas nécessaire de rechercher, il suffit de l'interroger directement. Vous n'avez besoin de l'interroger qu'une seule fois lors de l'insertion.

漂亮男人
    $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);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal