如何在foreach循环外使用数组值?

时间:2017-03-02 10:35:08

标签: php arrays laravel laravel-5 foreach

如何在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

我该怎么做?

3 个答案:

答案 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);