Maison > Questions et réponses > le corps du texte
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
高洛峰2017-06-06 09:56:07
Faites une recherche récursive, puis trouvez celle lorsque parent_id=null
仅有的幸福2017-06-06 09:56:07
Vous pouvez essayer 2 méthodes :
Interrogez tous les identifiants et parent_id, puis effectuez une recherche afin que les instructions SQL corrigées puissent être mises en cache.
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.
漂亮男人2017-06-06 09:56:07
$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);