Yinelenen değerler olduğunda nasıl bir dizi yapabilir?

2 Cevap

Ben bir gezinti çubuğu için bağlantılar içerir veri var. O başlığın altında gelen tüm bağlantıları daha sonra bir başlık ile, tam bir sırasız liste gibi yapılandırılmış ve olmalıdır. Ben bu doğru inşa etmek gibi olamaz. Bu veritabanından bazı örnek veriler olacaktır.

HEADING     LIST         LINK
Favs    	google			http://...
Favs    	yahoo			http://...
Favs    	stackoverflow	http://...
Site    	first link		http://...
Site    	second link		http://...

Bu veriler daha sonra group birine başlıklarının ve daha sonra onlarla ilgili bağlantıları göstermek gerekir. Bu bile mümkün mü ya da belki daha iyi bir yolu var mı?

Ben dinamik menü bir <UL> türünü oluşturmak için "GEÇİYOR" ve "LİSTESİ" kullanmayı planlıyor.


Peki, bu ben umduğu gibi çalışmıyor. Burada veritabanından inşa ediliyor dizidir. Kenar çubuğu [0] ve kenar çubuğu [1] değerini "favs" rpeat nasıl fark. Bu istemiyorum benim form aynı değeri tekrar edecektir. Yinelenen isimlerin hepsinin bir arada olmalıdır. Bu mümkün mü?

Array
(
    [date] => Sun, 25 Oct 2009
    [sidebar] => Array
        (
            [0] => Array
                (
                    [Favs] => Array
                        (
                            [author_sidebar_link] => google.com
                        )

                )

            [1] => Array
                (
                    [Favs] => Array
                        (
                            [author_sidebar_link] => yahoo.com
                        )

                )

            [2] => Array
                (
                    [Offsite] => Array
                        (
                            [author_sidebar_link_title] => something
                        )

                )

            [3] => Array
                (
                    [Something] => Array
                        (
                            [author_sidebar_link] => something else
                        )
                )
        )
)

2 Cevap

Böyle bir çok-boyutlu bir dizi kullanabilirsiniz:

<?php
$menu = array(
     'Favs' => array(
         array('LIST' => 'google', 'LINK' => 'http://...'),
         array('LIST' => 'yahoo', 'LINK' => 'http://...'),
         array('LIST' => 'stackoverflow', 'LINK' => 'http://...')
     ),
     'Site' => array(
         array('LIST' => 'first link', 'LINK' => 'http://...'),
         array('LIST' => 'second link', 'LINK' => 'http://...')
     )
);
?>

Eğer bu kodu kullanabilirsiniz

<?php
$_list = array();
foreach($_data as $k => $v){
 $_list[$v['HEADING']][$v['LIST']] = $v['LINK'];
}

foreach($_list as $k => $v){
 echo "<ul>".$k;
 foreach($v as $kk => $vv){
  echo "<li><a href='".$vv."'>".$kk."</a></li>";
 }
 echo "</ul>";
}
?>