亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php樹獲取子節點的所有父節點的列表

php樹獲取子節點的所有父節點的列表

PHP
元芳怎么了 2023-06-24 15:51:18
我想要子節點的所有父節點的列表。我正在搜索,但我正在獲取父節點的所有子節點。我的數組看起來像array(array('id' => 1, 'parent' => 0),array('id' => 2, 'parent' => 0),array('id' => 3, 'parent' => 0),array('id' => 4, 'parent' => 1),array('id' => 5, 'parent' => 4),array('id' => 6, 'parent' => 5));我想要的輸出是,我給輸入子節點 Id ,它將返回所有父節點。例如,我將給孩子 ID“raja”,它將給出輸出 1) manish 2) vijay 3) admin。
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

看看這個例子,讓我知道這是否是您正在尋找的。


<?php 

$arr = array(

    array('id' => 1, 'parent' => 0),

    array('id' => 2, 'parent' => 0),

    array('id' => 3, 'parent' => 0),

    array('id' => 4, 'parent' => 1),

    array('id' => 5, 'parent' => 4),

    array('id' => 6, 'parent' => 5));


$parents = [];

function find_parents($input, $id) {

    global $parents, $arr;

    if(is_array($input)) {

        foreach($input as $k => $val) {

           

            if($val['id'] == $id  && $val['parent'] != 0) {

                array_push($parents, $val['parent']);

                find_parents($arr, $val['parent']);

            }

        }

    }

}

find_parents($arr, 6);

print_r($parents);

作為6輸入將輸出


Array

(

    [0] => 5

    [1] => 4

    [2] => 1

)

您可以使用遞歸,以便它可以使用到任何級別。無需限制級別。


查看完整回答
反對 回復 2023-06-24
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

    find_parents($arr, $val['parent']);

在上面的行中,遞歸參數中的 $arr 應該是 $input 數組變量。


查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 279 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號