Nasıl çok boyutlu bir ilişkisel dizi numaralandırmak mı?

2 Cevap php

Ben PHP benim işim değil ve bu dizi fındık beni götürmek başlıyor itiraf ilk olacak.

Bu benim numaralandırmak için çalışılıyor dizidir:

// array containing the site menu
$sitemap = array(
    array( 'Title' => 'menu01',
        'Description' => 'menu01_description', 
        'Address' => 'http://localhost/site.php?page=menu01',
        ),
    array( 'Title' => 'menu02',
        'Description' => 'menu02_description', 
        'Address' => 'http://localhost/site.php?page=menu02',
        ),
    array( 'Title' => 'menu03',
        'Description' => 'menu03_description', 
        'Address' => 'http://localhost/site.php?page=menu03',
        )
);

Şu anda benim dizinin içeriğini numaralandırmak için bir foreach döngü kullanmak gerekir varsayımı altında faaliyet ediyorum.

Bu benim şu anda uygulamaya çalışıyorum fonksiyonu, ama benim argümanlar geçerli olmadığını bildiren bir hata dönen tutar.

function GenerateMenu(){
    $output = "<ul>";

    foreach ($sitemap as $menuitem => $value){
        if ($page == $value["Title"]){
            $output .= '<li class="active">';
        }
        else {
            $output .= '<li>';
        }

        $output .= '<a href="' . $value['Address'] . '">' . $value['Description'] . '</a><li>';
    }

    $output .= "</ul>";
    return $output;
}

Neden benim argümanlar geçersiz? Benim dizi yazdırmak için ne iyi yolu nedir?

2 Cevap

Sen / geçiş belirtmeyi unuttum $page ve $sitemap. Değişkenleri nereden geliyor ki?

Işlevinize geçmek deneyin:

function GenerateMenu($sitemap, $page) {
    // …
}

Sonra bu gibi çağırabilirsiniz:

$sitemap = array(
    // …
);
$page = 'menu01'
echo GenerateMenu($sitemap, $page);

Fonksiyonu GenerateMenu() $page için değerini gönderilen ve $sitemap olması gerekiyor ya da ne yapacağını bilmiyor.