2017-03-02 19 views
1

Laravel 5.4のforeachループの外側で配列値を使用するにはどうすればよいですか?ここ
は、コードは次のとおりです。
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フォーマットされたリストを返します。

は今、私は、ユーザーが入力した値でこれらのキーワードを組み合わせて、コンマにを使用してそれらを分離し、変数としてクエリURLにそれらを使用し、その後を「.COM」接尾、 を追加にしたいです。
P.S:私はguzzlehttpを使用してAPIにリクエストを送信しています。だから、上に配置する必要があります。

'DomainList' => $domainlist

私はそれをどのように行うことができますか?あなたがしよう

+0

' $のSTRING'を使用するforeachループに

を使用する必要がありますしていますすべてのループでお伝えしています。したがって、 '。='を使って連結する必要があります。平等の前に覚えておいてください。 – vijayrana

+0

は、エラーメッセージ – ashanrupasinghe

答えて

1

、あなたが彼らのコレクションの利点を取って検討する必要があることを実行します。

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のコレクションが内破するためのコマンドを持っています配列では、データに対して他の操作を実行する予定がない限り、配列を抜いてループする必要はありません。

EDIT:あなたはこのような何かを探しているように更新され、質問に基づいて、それが聞こえる:あなたが摘む()メソッドを使用する場合

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 
} 
+0

更新された質問をお読みください。 –

+0

ありがとう、それは(一部の変更を加えて)機能しました。 –

0

あなたがlaravelを使用している場合

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; 
    } 
+0

を返します。最新の質問をお読みください。 –

0

それは与えられた名前 の配列を返すので、あなたはいけませんちょうどそのVを置き換えます、あなたの `のforeach loop`内

$catkeywords = array(DB::table('keywords')->pluck($category)); 
echo implode(',',$catkeyword); 
+0

更新された質問をお読みください。 –

関連する問題