Как поставить строку в начале крошки?

У меня следующий вопрос: как поставить строку в начале крошки?

Дело в том, я хочу найти ключевое слово Тест 4.

Будет создана крошка:
Тест 1> Тест 2> Тест 3 ТЕСТ 4

Второе ключевое слово, которое я ищу, это Тест 7

Хлебная крошка, которую я хочу создать:
… Тест 4> Тест 5> Тест 6 ТЕСТ 7

Как я могу поставить точки (…) в начале крошки?

Это мой текущий код:

 public function getPathNames($node_id, $id_tag) {

$node_ids=$this->getPath($node_id);

$r = array();

foreach($node_ids as $id){
$NodeObject = NodeObject::where('id','=',$id)->firstOrFail();

if ($this->getCurrentUserGroup() == 4) {
$NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision)->firstOrFail();
} else {
if (empty($NodeObject->node_revision_draft)) {
$NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision)->firstOrFail();
} else {
$NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision_draft)->firstOrFail();
}
}
$r[]= '<a id="'.$id_tag.$NodeObject->id.'" href="#" class="search_path_click">'.$NodeRevision->name . '</a>  <i class="fa fa-chevron-right" style="color: #000; font-size: 0.5em;"></i>';
}
// only show the last 3 names in the breadcrumb
return array_slice($r, -3, 3, false);
}

0

Решение

Редакция:

Чтобы добавить три точки в начало первого элемента в массиве, если размер массива равен или больше 3, все, что вам нужно сделать, это

// only show the last 3 names in the breadcrumb
$r = array_slice($r, -3, 3, false);
if( count($r) >= 3 ) {
$r[0] = '&hellip; '.$r[0]; // we know the keys won't be preserved as you used `false` in `array_slice` function, so we can safely assume first array element will be 0
}
return $r
2

Другие решения

пример:

return array(0 => "...") + array_slice($r, -4, 4, false);

это то, что ты хочешь?

1

Махмуд, спасибо за ваш ответ. Я хочу добавить строку в первый элемент массива. Я не хочу заполнять дополнительный элемент массива ;-). Мэйби, я не был уверен в этом. Так что я сейчас пытаюсь сделать это:

$r = array_slice($r, -3, 3, false);
if (count($r) >= 3) {
$rr = array();
foreach ($r as $key => $oneR) {
if ($key == 0) {
$rr = '<span style="color: #000;">...</style>' . $oneR;
} else {
$rr = $oneR;
}
}
return $rr;
} else {
return $r;
}

0

Спасибо, ребята, за ваш ответ! Я объединил ваши коды, и это результат, которого я хочу достичь!

            $arraySliced = array_slice($r, -4, 4, false);
if (count($arraySliced) > 3) {
return array(0 => "<span style='color: #000;'>...</span>") + $arraySliced;
}else{
return $arraySliced;
}
0
По вопросам рекламы [email protected]