去年網上baidu題目的解答,不要指望會了就進百度了哦

來源:互聯網
上載者:User

    按http://developer.51cto.com/art/201103/252703.htm的要求實現了效果,但表徵圖沒有實現,css也沒實現,還有標題所說的要麼是餓搞要麼是已經到期了,不要指望能做出來就有工作了,我也是順便拿來練手,保持對代碼的熱度!

    我之所以實現這個功能,是一定程度上能衡量php開發的水平,需要一定的功力.我針對痛點,採用了兩個key value形式的數組去應對所需要的操作,這移置到memcache等緩衝系統上也很方便.

    功能是實現一個分類的摺疊和開啟,用於顯示商品或者其它資訊的分類. 該分類的每一項可以摺疊和收合(展開和收縮, 如果有子分類的話). 分類的級數不固定.

未經處理資料為數組

$cats = array( 
       array( 
            'id' => 1, 
            'name' => '電子遊戲', 
            'children' => array( 
                array( 
                    'id' => 3, 
                    'name' => '競技遊戲1', 
                    'children' => null, 
               ), 
               array( 
                    'id' => 5, 
                    'name' => '競技遊戲2', 
                    'children' => null, 
               ),
               array( 
                    'id' => 7, 
                    'name' => '競技遊戲3', 
                    'children' => null, 
               ),
           ), 
       ), 
       array( 
            'id' => 2, 
            'name' => '學術和教育', 
            'children' => array( 
               array( 
                    'id' => 4, 
                    'name' => '自然科學', 
                    'children' => null, 
               ), 
               array( 
                    'id' => 6, 
                    'name' => '人文社科', 
                    'children' => null, 
               ),
               array( 
                    'id' => 8, 
                    'name' => '期刊會議', 
                    'children' => null, 
               ),
               array( 
                    'id' => 9, 
                    'name' => '高校名稱', 
                    'children' => array( 
                        array( 
                            'id' => 14, 
                            'name' => '中國大學', 
                            'children' => null, 
                        ), 
                        array( 
                            'id' => 16, 
                            'name' => '國際大學', 
                            'children' => null, 
                        ), 
                     ),
               ),
           ), 
       ),
       array( 
            'id' => 10, 
            'name' => '生活', 
            'children' => array( 
                array( 
                    'id' => 12, 
                    'name' => '生活1', 
                    'children' => null, 
               ), 
           ), 
       ),
   );

我對應處理

function setLoopIndex($val,$pref,&$index,&$nameArr){
    if(!empty($val)){//非空

        foreach($val as $key=>$v){
             $child_pref=trim($pref. ' ' .$key);
             $index[$v['id']]=$child_pref;
             $nameArr[$child_pref]=$v['name'].":".$v['id'];
             setLoopIndex($v['children'],$child_pref,&$index,&$nameArr);//迴圈處理該子類
        }

    }
}

//如果資料量太大的話放memcache等其他方式,因為都是key value資料存放區方式
$index=array();//儲存id和對應索引值
$nameArr=array();//儲存索引值和對應名字
setLoopIndex($cats,'',&$index,&$nameArr);//迴圈處理

 代碼見附件,如有什麼問題請回帖,歡迎拍磚!將解壓後的檔案放在網站根目錄,則訪問的地址是127.0.0.1/test.php,其他看下代碼就知道了,不是很複雜,繼續聲明:歡迎拍磚,特別是有更好的實現能交流學習!

本文出自 “純技術純探討” 部落格,請務必保留此出處http://hjun169.blog.51cto.com/3600246/891533

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.