如何在字符串的开头放一个字符串?

时间:2016-01-17 14:43:05

标签: php slice breadcrumbs

我有以下问题:如何在字符串的开头放一个字符串?

案例是,我想搜索关键字 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);
}

4 个答案:

答案 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] = '&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

答案 1 :(得分:1)

示例:

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

那是你想要的?

答案 2 :(得分:0)

Mahmoud,谢谢你的回复。我想在第一个数组项中添加一个字符串。我不想填充额外的数组项;-)。 Maby我不清楚。所以我现在要做的就是:

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