2017-01-10 11 views
0

たとえば、Articleのコレクションがあり、人気のある記事を取得したいとします。Laravelのpluckメソッドを連想配列なしで使用する

まず、ArticleメソッドでscopePopular()メソッドを作成します。非常に簡単です。

今、私は彼らのid秒を取得したいので、私はこれをやる:、私は通常の配列を取得したい

[ 
    0 => 1, 
    1 => 34, 
    2 => 17 
    ... 
]; 

Article::popular->pluck('id'); 

結果は連想配列となります

[1, 34, 17] 

私はちょうどこのような何かをすることができます知っている:

array_values(Article::popular->pluck('id')); 

しかし、私はLaravelがこれを行うためにはるかにクリーンな方法があると思います。何か案は?あなたはarray_values()のラッパーですvalues()メソッドを使用することができます

+0

PHPにはそのようなことはありません。すべての配列にインデックスがあります。文字通り[0 => 1,1 => 34]と[1,34]の間に違いはありません。 – devk

答えて

0

Article::popular->pluck('id')->values(); 
+0

複数の質問に同じ回答を加えないでください。最良のものに答え、残りを重複としてフラグを立てる。 http://meta.stackexchange.com/questions/104227/is-it-acceptable-to-add-a-duplicate-answer-to-several-questions –

0

そのデフォルトのPHPは0

から増分キーを持っていることによって、あなたが得るもの、あなたが見たいと思っ必要がある正確に何私が想定しているJSON配列のようなものです。 配列を返すだけでブラウザにJSOn配列が表示されますが、内部的にはこのようになります。

確認し、私は

4

すべての配列インデックスを持っているknow.Thanks聞かせください。

[ 
    0 => 1, 
    1 => 34, 
    2 => 17 
]; 

つまり
[1, 34, 17] 

に等しい:

$a1 = [0 => 1, 1 => 34, 2 => 17]; 
$a2 = [1, 34, 17]; 
$a1 === $a2; 
// returns True 
+1

を参照してください。私が持っていた問題は、配列の構造に対する私の悪いアプローチのためでした。それを明確にしてくれてありがとう:) –