我有以下问题:如何在字符串的开头放一个字符串?
案例是,我想搜索关键字 Test 4 。
将生成的面包屑是: 试验1&gt; <试验2>测试3 TEST 4
我要搜索的第二个关键字是 Test 7
我想要生成的面包屑是: ...测试4&gt;试验5&gt;测试6 TEST 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 :(得分:2)
<强>编辑:强>
如果数组大小等于或大于3,要将三个点添加到数组中第一项的求值,您只需要
// only show the last 3 names in the breadcrumb
$r = array_slice($r, -3, 3, false);
if( count($r) >= 3 ) {
$r[0] = '… '.$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
答案 1 :(得分:1)
示例:
return array(0 => "...") + array_slice($r, -4, 4, false);
那是你想要的?
答案 2 :(得分:0)
$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;
}
答案 3 :(得分:0)
谢谢你们的回应!我合并了你的代码,这是我想要实现的结果!
$arraySliced = array_slice($r, -4, 4, false);
if (count($arraySliced) > 3) {
return array(0 => "<span style='color: #000;'>...</span>") + $arraySliced;
}else{
return $arraySliced;
}