سؤال

حصلت على هذا الرمز من شخص ما وهو يعمل بشكل جيد للغاية ، أريد فقط إزالة الرابط من العنصر الأخير من المصفوفة:

//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);

سيؤدي ذلك إلى إخراج ذلك على سبيل المثال: المحتوى> مشترك> ملف

أرغب فقط في إزالة الرابط من العنصر الأخير - "ملف" ليكون مجرد نص عادي .. حاولت نفسي حساب عناصر الصفيف ، ثم إذا كان عنصر الصفيف هو الأخير ثم لطباعة نص عادي .. لكني ما زلت لا ، لم أتمكن من الحصول على نتيجة مناسبة ..

شكرًا لك!

هل كانت مفيدة؟

المحلول

هذا يجب أن يعمل:

$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);

نصائح أخرى

يمكنك ببساطة تعديل التعليمات البرمجية الحالية لاستخدام حلقة "طبيعية" (بدلاً من التكرار foreach) لتحقيق ذلك.

علي سبيل المثال:

//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);

NB: ليس لدي إمكانية الوصول إلى PHP في الوقت الحالي ، لذلك قد لا يكون ما سبق خاليًا من الأخطاء ، ولكن يجب أن تحصل على الفكرة.

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;
   }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top