2017-10-26 2 views
0

ich die folgenden Sammlung zu tun haben:Wie eine bestimmte Array innerhalb Laravel Sammlung bekommen

Collection {#265 ▼ 
    #items: array:3 [▼ 
    0 => array:9 [▼ 
     "dueDate" => "2017-10-29" 
     "date" => "2017-09-29" 
     "number" => "9030001" 
     "statuse" => "Reminder" 
     "currentCode" => "S" 
     "amount" => 2006.0 
     "remainingAmount" => 2006.0 
     "convertedToAccountNumber" => null 
     "originalCreditorReference" => "0903" 
    ] 
    1 => array:9 [▼ 
     "dueDate" => "2017-10-29" 
     "date" => "2017-09-29" 
     "number" => "9030022" 
     "statuse" => "Reminder" 
     "currentCode" => "S" 
     "amount" => 2294.0 
     "remainingAmount" => 2294.0 
     "convertedToAccountNumber" => null 
     "originalCreditorReference" => "0903" 
    ] 
    2 => array:9 [▼ 
     "dueDate" => "2017-11-01" 
     "date" => "2017-10-02" 
     "number" => "9040023" 
     "statuse" => "Unpaid" 
     "currentCode" => "S" 
     "amount" => 3643.0 
     "remainingAmount" => 3643.0 
     "convertedToAccountNumber" => null 
     "originalCreditorReference" => "0904" 
    ] 
    ] 
} 

Meine Frage ist, mit einer foreach-Schleife außer Iterieren ist es eine Möglichkeit, eine bestimmte Array innerhalb dieser Sammlung immer basierend auf Zifferntaste Beispiel Ich möchte das Array zurückgeben, wo die Nummer gleich 9040023 ist?

Hinweis. Ich habe es mit einer Foreach gemacht, aber ich möchte stattdessen die Laravel-Sammlung verwenden.

Antwort

1

Sie können das where Methode:

$collection->where('number', 9040023)->all(); 
+0

Hinweis: Die Arbeits außer ich brauche alle nicht() oder get() :) –

0

Sie können mit Sammel Helper-Methode (auch Eloquent): flatMap

Die flatMap Verfahren iteriert durch die Sammlung und übergibt jede Wert der Rückruf gegeben. Der Callback ist frei, den Artikel zu ändern und zurückzugeben, wodurch eine neue Sammlung modifizierter Artikel gebildet wird. Dann wird das Array durch eine Ebene reduziert (mithilfe der collapse() - Sammlung Methode).

$collection->flatMap(function ($item){ 
    if ($item['number'] === "9040023"){ 
     return $item; 
    } 
}); 
Verwandte Themen