Meine $addresses
Array enthält mehrere Standorte für jede $client
. Diese Adressen werden unter Verwendung elterlicher Beziehungen in Laravel abgerufen.Hinzufügen von Eigenschaften zu jedem Objekt in PHP-Array
Ich möchte jede Adresse abrufen, die Entfernung von einem Ursprung (mit Google Maps API) ermitteln und dann diese Entfernung zu jedem Objekt hinzufügen.
Ich kann durch jeden Schlüssel iterieren und ihn mit den neuen Daten neu hinzufügen, aber gibt es eine einfachere Methode, die Postleitzahl zu lesen, die Entfernung zu bekommen und diese zu jedem hinzuzufügen?
$client = client::find($id);
$addresses = $client->address()->get();
langatmig Methode:
foreach ($addresses as $address) {
$newAddress= new \stdClass;
$newAddress->label = $address->label; //seems redundant
$newAddress->street= $address->street; //seems redundant
$newAddress->postcode = $address->postcode; //seems redundant
$newAddress->distance = (function to get distance) //this is the only new data
$newAddresses[] = $newAddress;
}
Das ist perfekt, danke! –
Das '&' ist in foreach nicht notwendig, es wird kein Argument an eine Funktion übergeben. d. h. es funktioniert ohne, also: 'foreach ($ Adressen als $ Adresse)' –
Die & ist in der Tat notwendig, wenn Sie das Element ändern möchten. Ich habe eine Alternative hinzugefügt, wenn Sie keine Referenzen in einer foreach-Schleife verwenden möchten, sowie einige Warnungen bezüglich dangling Referenzen. –