2017-01-10 5 views
0

Sagen wir, ich habe eine Article s Sammlung, und ich möchte die beliebten Artikel abrufen.Verwenden von Laravels Zupfmethode ohne assoziatives Array

Also zuerst mache ich eine scopePopular() Methode in der Article Methode. Sehr einfach.

Jetzt möchte ich ihre id s holen, so werde ich dies tun:

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

Das Ergebnis wird ein assoziatives Array sein:

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

ich ein normales Array erhalten möchten, ohne die Schlüssel, wie:

[1, 34, 17] 

ich ich weiß nur so etwas tun kann:

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

Aber ich glaube, Laravel hat viel sauberer Weg, dies zu tun. Irgendwelche Ideen?

+0

Es gibt keine solche Sache in PHP ist. Alle Arrays haben ihre Indizes. Es gibt buchstäblich keinen Unterschied zwischen [0 => 1, 1 => 34] und [1, 34]. – devk

Antwort

0

Sie values() Methode können die Wrapper für array_values() ist:

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

Bitte fügen Sie nicht die gleiche Antwort zu mehreren Fragen hinzu. Beantworte die beste und markiere den Rest als Duplikate. Siehe http://meta.stackexchange.com/questions/104227/is-it-acceptable-to-add-a-duplicate-answer-to-several-questions –

0

Sein genau das, was Sie brauchen und was Sie bekommen, standardmäßig php die inkrementalen Schlüssel von 0.

haben Sie wollen sehen, etwas wie ein JSON-Array nehme ich an. Geben Sie einfach das Array zurück und Sie werden das JSOn-Array im Browser sehen, aber intern ist es nur so.

Bitte bestätigen Sie und lassen Sie mich know.Thanks

4

Alle Arrays haben Indizes.

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

gleich zu

[1, 34, 17] 

Mit anderen Worten:

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

Sie haben Recht. Das Problem, das ich hatte, war wegen meiner schlechten Annäherung an die Struktur des Arrays. Danke für die Klärung :) –