Rumah > Soal Jawab > teks badan
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
仅有的幸福2017-06-06 09:56:07
Ada 2 kaedah yang anda boleh cuba:
Soal semua id dan parent_id, dan kemudian cari, supaya pernyataan sql tetap boleh dicache.
Tambahkan root_id medan baharu untuk merekodkan nod akar, jadi tidak perlu mencari, hanya bertanya terus Anda hanya perlu menanyakannya sekali semasa memasukkan.
漂亮男人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);