2010-04-08 12 views
0

Je suis arrivé ce code de quelqu'un et il fonctionne très bien, je veux juste supprimer le lien du dernier élément du tableau:PHP dynamique Fil d'Ariane

//get rid of empty parts 
$crumbs = array_filter($crumbs); 

$result = array(); 
$path = ''; 
foreach($crumbs as $crumb){ 
    $path .= '/' . $crumb; 
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb)); 
    $result[] = "<a href=\"$path\">$name</a>"; 

} 

print implode(' > ', $result); 

Cette sortie sera par exemple: contenu> Common Je veux juste un pour supprimer le lien du dernier élément - "Fichier" pour être simplement texte .. Je me suis essayé à compter les éléments de tableau et puis si l'élément de tableau est le dernier, puis à imprimer en texte brut le dernier élément .. mais je suis toujours noob, je n'ai pas réussi à obtenir un résultat correct ..

Merci!

Répondre

2

Cela devrait fonctionner:

$crumbs = array_filter($crumbs); 

$result = array(); $path = ''; 
//might need to subtract one from the count... 
$count = count($crumbs); 
foreach($crumbs as $k=>$crumb){ 
    $path .= '/' . $crumb; 
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb)); 
    if($k != $count){ 
     $result[] = "<a href=\"$path\">$name</a>"; 
    } else { 
     $result[] = $name; 
    } 
} 

print implode(' > ', $result); 
+0

C'est parfait merci! –

+0

en supposant que votre tableau est indexé 0 -> N – SeanJA

1

Vous pouvez simplement modifier votre code existant pour utiliser une boucle « normale » (plutôt que d'un itérateur foreach) pour y parvenir.

Par exemple:

//get rid of empty parts 
$crumbs = array_filter($crumbs); 

$result = array(); 
$path = ''; 
$crumbCount = count($crumbs); 
for($crumbLoop=0; $crumbLoop<$crumbCount; $crumbLoop++) { 
    $path .= '/' . $crumbs[$crumbLoop]; 
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$crumbLoop])); 
    $result[] = ($crumbLoop != $crumbCount -1) ? "<a href=\"$path\">$name</a>" : $name; 
} 

print implode(' > ', $result); 

N.B.: Je n'ai pas accès à PHP au moment, donc ce qui précède peut-être pas sans erreur, mais vous devriez avoir l'idée.

+0

mensonges! (15 caractères) – SeanJA

0
for($i=0;$i< sizeof($crumbs);$i++) { 
    $path .= '/' . $crumbs[$i]; 
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$i])); 

    if ($i != sizeof($crumbs)-1) { 
     $result[] = "<a href=\"$path\">$name</a>"; 
    }else { 
     $result[] = $name; 
    } 
}