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

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

無法按鍵刪除或取消設置數組中的特定項目

無法按鍵刪除或取消設置數組中的特定項目

PHP
桃花長相依 2023-03-26 16:07:32
以下是我的數組輸出。Array(    [0] => Array        (            [id] => 1011            [user_id] => 168            [item_id] => 831            [post_content] => My New Post 20            [parent_comment_id] => 1010            [name] => a            [children] => Array                (                    [0] => Array                        (                            [id] => 1012                            [user_id] => 168                            [item_id] => 831                            [parent_comment_id] => 1011                            [name] => a                            [children] => Array                                (                                    [0] => Array                                        (                                            [id] => 1013                                            [user_id] => 179                                            [item_id] => 831                                            [parent_comment_id] => 1012                                            [name] => a                                            [children] => Array                                                (                                                    [0] => Array                                                        (                                                            [id] => 1014                                                            [user_id] => 168                                                            [item_id] => 831                                                            [parent_comment_id] => 1013                                                            [name] => a                                                        )                                                )                                        )                                )                        )                )        ))
查看完整描述

2 回答

?
慕無忌1623718

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

這只涉及對遞歸函數的輕微更改。我添加了一個新參數,用于標記這是否是樹的基礎。在代碼將新節點添加到樹中之前,如果它不是基礎節點,它將首先刪除所需的元素。


隨后的調用都傳入 false,以標記它不是堿基調用...


function createTree(&$list, $parent, $base = true){

    $tree = array();

    foreach ($parent as $k=>$l){

        if(isset($list[$l['id']])){

            $l['children'] = createTree($list, $list[$l['id']], false);

        }

        if ( ! $base )  {

            unset($l['item_id']);

            unset($l['parent_comment_id']);

            unset($l['name']);

        }

        $tree[] = $l;

   }

    return $tree;

}


查看完整回答
反對 回復 2023-03-26
?
蝴蝶不菲

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

您可以在子項中使用標志進行刪除,如下所示:


$arr = array(

  array('id'=>1011, 'user_id' => 168, 'item_id'=>831, 'post_content'=>'My New Post 20', 'parent_comment_id'=>1010, 'name'=>'a'),

  array('id'=>1012,'user_id' => 168, 'item_id'=>831 ,'parent_comment_id'=>1011, 'name'=>'a'),

  array('id'=>1013, 'user_id' => 179, 'item_id'=>831, 'parent_comment_id'=>1012, 'name'=>'a'),

  array('id'=>1014,'user_id' => 168, 'item_id'=>831, 'parent_comment_id'=>1013, 'name'=>'a'),

);

echo "<pre> add";print_r($arr);


$new = array();

foreach ($arr as $a){

    $new[$a['parent_comment_id']][] = $a;

}

$tree = createTree($new, array($arr[0]));

print_r($tree);


function createTree(&$list, $parent, $isChild = false){


    $tree = array();


    foreach ($parent as $k=>$l){



        if(isset($list[$l['id']])){

            $l['children'] = createTree($list, $list[$l['id']], true);


            if ($isChild) {

                unset($l['item_id']);

                // unset another field

            }

        }

        $tree[] = $l;


    } 

    return $tree;

}


查看完整回答
反對 回復 2023-03-26
  • 2 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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