Laravel中如何用implode在数组元素间添加>符号拼接?
解决分类名称添加分隔符的问题
嘿,这个需求很容易实现,咱们只需要调整一下数组转字符串的方式就好啦!
核心思路
你原来的代码最后得到的是一个包含父分类和当前分类标题的数组,现在要做的就是把这个数组的元素用>(也就是HTML里的大于号实体)拼接成一个字符串。
方法一:用implode()函数(推荐)
implode()是PHP里专门用来将数组元素拼接成字符串的函数,非常适合这种场景,而且如果以后需要支持三级分类,扩展起来也很方便:
$category = $product->category; if(!empty($category->category_id)){ // 用 > 作为分隔符拼接数组元素 $category = implode(' > ', [$category->parent->title, $category->title]); }
执行这段代码后,你就能得到类似Default Category > first level category的结果,渲染到页面上就会显示成Default Category > first level category。
方法二:直接字符串拼接
如果确定只会有两级分类,也可以直接用字符串连接符.来拼接:
$category = $product->category; if(!empty($category->category_id)){ $category = $category->parent->title . ' > ' . $category->title; }
额外优化:防止父分类为空报错
如果存在没有父分类的情况,建议加个判断避免调用null的属性导致报错:
$category = $product->category; if(!empty($category->category_id) && !empty($category->parent)){ $category = implode(' > ', [$category->parent->title, $category->title]); } else { // 没有父分类时直接显示当前分类 $category = $category->title; }
这样你的代码就更健壮啦!
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

