gpt4 book ai didi

php - 如何连接 laravel 集合的值

转载 作者:行者123 更新时间:2023-12-04 03:19:51 25 4
gpt4 key购买 nike

这是 Laravel 爱好者的一个小挑战:-)

我想构建一个简单的请求段列表及其 url。

我开始于:

// http://domain/aaa/bbb/ccc/ddd
$breadcrumbs = collect(explode('/', $request->path()))

但我不知道如何将它映射到一个看起来像这样的集合:

$breadcrumbs = collect([
['title' => 'aaa', 'link' => 'http://domain/aaa'],
['title' => 'bbb', 'link' => 'http://domain/aaa/bbb'],
['title' => 'ccc', 'link' => 'http://domain/aaa/bbb/ccc'],
['title' => 'ddd', 'link' => 'http://domain/aaa/bbb/ccc/ddd'],
])

我可以使用 for 循环轻松地做到这一点,但我正在寻找一种非常优雅的方式来做到这一点。我尝试使用 map()each() 但没有成功。

正如 Adam Wathan 所说:“永远不要再写另一个循环。” ;-)

最佳答案

有很多方法可以做到这一点,但由于您不可避免地需要了解过去的项目,我建议使用 reduce()。这是一个基本示例,将向您展示如何构建字符串。您可以轻松添加链接,将进位放入数组等。

collect(['aaa', 'bbb', 'ccc', 'ddd'])
->reduce(function ($carry, $item) {
return $carry->push($carry->last() . '/' . $item);
}, collect([]));

结果在

Illuminate\Support\Collection {#928
#items: array:4 [
0 => "/aaa"
1 => "/aaa/bbb"
2 => "/aaa/bbb/ccc"
3 => "/aaa/bbb/ccc/ddd"
]
}

虽然没有声称它以任何方式进行了优化,但它确实有效。 :)

关于php - 如何连接 laravel 集合的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com