如何在Laravel 5.4中使用foreach循环外的数组值?
这是代码:
public function index(Request $request)
{
$name = $request->input('keyword');
$category = $request->input('category');
$catkeywords = array(DB::table('keywords')->pluck($category));
foreach ($catkeywords as $catkeyword) {
$string = implode(',',$catkeyword);
}
echo $string;
}
我不知道为什么它不起作用!
我只是希望从数据库中返回的关键字将与一些文字合并并用于某些 API查询。
换句话说,我希望关键字列在循环之外。
用于在这样的API查询中使用:
http://api-url/query?id=domain1.com,domain2.com,domain3.com
$catkeywords
会返回 json 格式的关键字列表。
现在我想将这些关键字与用户输入的值相结合和添加“.com”后缀,
然后使用逗号分隔它们并在查询网址上将它们用作变量
P.S:我正在使用guzzlehttp
向API发送请求。所以应该放在:
'DomainList' => $domainlist
我该怎么做?
答案 0 :(得分:1)
如果你正在使用laravel,你应该考虑利用他们的收藏品:
https://laravel.com/docs/5.4/collections#method-implode
public function index(Request $request)
{
$name = $request->input('keyword');
$category = $request->input('category');
$catkeywords = DB::table('keywords')->implode($category, ',');
echo $catkeywords;
}
Laravel集合有一个用于插入数组的命令,所以除非你打算对数据进行其他操作,否则不需要使用pluck和loop遍历数组。
编辑:根据更新的问题,听起来您正在寻找类似的内容:
public function index(Request $request)
{
$name = $request->input('keyword');
$category = $request->input('category');
$catkeywords = DB::table('keywords')->pluck($category); //You don't need to wrap this in an array()
$keywords = []; //Create a holding array
foreach ($catkeywords as $catkeyword) {
$keywords[] = $catkeyword . '.com'; //Push the value to the array
}
echo implode(',', $keywords); //Then implode the edited values at the end
}
答案 1 :(得分:0)
你试试那样做
public function index(Request $request)
{
$name = $request->input('keyword');
$string = '';
$category = $request->input('category');
$catkeywords = array(DB::table('keywords')->pluck($category));
foreach ($catkeywords as $catkeyword) {
$string .= implode(',',$catkeyword);
}
echo $string;
}
答案 2 :(得分:0)
当你使用pluck()方法然后它返回给定名称的数组 所以你不需要使用foreach循环
只需使用
$catkeywords = array(DB::table('keywords')->pluck($category));
echo implode(',',$catkeyword);