我在数据库中有一个标签列表,它有15个字。我只想提取第一个3,例如说我有苹果,葡萄,饼干,糖果,牛奶作为我的标签,我只想显示苹果,葡萄和饼干,我该怎么做?我试过了,但问题是,其余的字母都没有了。顺便说一句,我正在使用laravel。提前致谢 这是代码
docer-compose
azure-blob-storage:
image: arafato/azurite
ports:
- "10000:10000"
- "10002:10002"
volumes:
- data-volume:/opt/azurite/folder
CloudTable table = tableClient.getTableReference(tableName)
table.createIfNotExists() -- there is error
这是我得到的输出
化妆师,发型师,空中小姐
答案 0 :(得分:2)
因此,鉴于
的$user->tags
字符串
apple, orange, kiwi, lemon, pineapple
尝试分割和限制单个长度是行不通的,因为数据将是动态的,并会导致部分或不完整的标记。要解决此问题,请使用explode()
:
$tags = explode(",", $user->tags); // ["apple", "orange", "kiwi", "lemon", "pineapple"];
现在$tags
是一个数组,应该容易接受3并返回它们:
$firstThree = array_splice($tags, 0, 3); // ["apple", "orange", "kiwi"];
现在,您的$tags
数组包含3个元素(或更少,取决于$user->tags
中的内容),您可以implode()
将其转换为字符串:
$tagString = implode(",", $firstThree); // apple, orange, kiwi
接下来,将所有内容放在一起。就您而言,这可能更容易实现,具体取决于您的$user
:
public function tagString(){
$tags = explode(",", $this->tags);
$firstThree = array_splice($tags, 0, 3);
return implode(",", $firstThree);
}
而且,在您的刀片文件中:
{{ $user->tagString() }}
那样就可以了!
同样,有很多方法可以做到这一点。可以为一个简单的正则表达式争论一下,以将$user->tags
的值限制为word,
的前三个实例,但是Regex不是我的专业领域。希望有帮助!