php veri yapısı - xml veya ağaç?

1 Cevap php

i genel bir fonksiyon yazmak istiyorum bu gibi çıktı bir şey yapamam.

<span class="side_title">By Collection</span>
            <ul class="menu">
                    <li class="top">
                    <a class="top_menu" href="#url">home</a>
                    </li>
                    <li class="sub">
                    <a href="#">collectionA</a>
                    <ul>
                            <li><a href="../index.html">collectionA-1</a></li>
                            <li><a href="#url">collectionA-2</a></li>
                    </ul>
                    </li>
                    <li class="sub">
                    <a href="#">collectionB</a>
                    <ul>
                            <li><a href="#url">collectionB-1</a></li>
                    </ul>
                    </li>
                    <li class="top"><a href="#url">CollectionE</a></li>
            </ul>

            <span class="side_title">By Functions</span>
            <ul class="menu">
                    <li class="top">
                    <a class="top_menu" href="#url">home</a>
                    </li>
                    <li class="sub">
                    <a href="#">functionA</a>
                    <ul>
                            <li><a href="../index.html">functionA-1</a></li>
                            <li><a href="#url">functionA-2</a></li>
                    </ul>
                    </li>
                    <li class="sub">
                    <a href="#">functionB</a>
                    <ul>
                            <li><a href="#url">functionB-1</a></li>
                            <li><a href="#url">functionB-2</a></li>
                    </ul>
                    </li>
                    <li class="top"><a href="#url">functionE</a></li>
            </ul>

ama sorun ben bu yapıyı temsil etmek için bir veri yapısını bulmak edemez, i (. dizisi kullanarak - anahtar bağlantının içeriği, değeri, adres ve özyineleme olduğunu) follwoing çalıştı:

$a = array (
            "By collection" => '',
            'Base' => 'thisBase',
            "expand" => array (
                    'Home' => 'home',
                    'collectionA' => 'collectionA',
                    'expand' => array (
                            'collectiona-1' => 'collectiona-1',
                            'collectiona-2' => 'collectiona-2'
                    ),
                    'collectionB' => 'collectionb',
                    'expand' => array (
                            'collectionb-1' => 'collectionb-1',
                            'collectionb-2' => 'collectionb-2'
                    ),
                    'collectionB' => 'collectionb',
                    'expand' => array (
                            'collectionc-1' => 'collectionc-1',
                            'collectionc-2' => 'collectionc-2'
                    ),
            ),
            "by Function" => ''
    );


    function expand($a=NULL)
    {
            foreach ($a as $key => $value) 
            {
                    if ($value == '')
                    {
                            echo '<span class="side_title">'.$key.'</span>';
                            echo '<ul class="menu">';
                    } elseif (is_array($value))
                    {
                            echo '<ul class="sub_menu">';
                            expand($value);
                    } else {
                            echo '<li><a href="'.$value.'>'.$key.'</a></li>';
                    }
            }
            echo '</ul>';
    }

    print_r($a);

    expand($a);

i temsil xml / ağacını kullanarak düşündüm, ancak veri yapısı farklı işlev arasında geçiş olduğunu, bu yüzden çok çaba olacağını düşündüm, bu yüzden bu sorunun ne biliyor musun? veya daha iyi bir yolu var mı?

1 Cevap

Bu sorunu çözer eğer ben, bilmiyorum, ama href özniteliği için bir kapanış "unuttum.

echo '<li><a href="'.$value.'">'.$key.'</a></li>';