2016-04-19 6 views
0

hier Ergebnisse sind einige Objekte, die ich aus Abfrage holenLaravel ein Array bauen aus Abfrage

Ergebnisse
{ 
    { 
     "name": "John", 
     "notification": "sms" 
    }, 
    { 
     "name": "John", 
     "notification": "email" 
    }, 
} 

Aus diesen Ergebnissen, ich will wie diese

{ 
    "name":"John", 
    "notification":['email', 'sms'] 
} 

Wer ein Array bauen, die Licht kann mein Tag?

+0

Die Quelle ist ein Array von Objekten? Der Name ist einzigartig oder Sie können verschiedene Namen in demselben Array haben. – fusion3k

+0

@ fusion3k ("Name", "Benachrichtigung") ist einzigartig – CERCUA

Antwort

1

Angenommen, Ihre ursprünglichen Objekt wird ein Array von Objekten, wenn Sie ein einzelnes Objekt als Ergebnis möchten, können Sie dies tun ($data ist Ihre ursprüngliche Array):

$result = (object) [ 'name' => $data[0]->name, 'notifications' => [] ]; 
foreach($data as $item) $result->notifications[] = $item->notification; 

auf PHP 7 können Sie auch dies tun:

$result = (object) [ 'name' => $data[0]->name, 'notifications' => array_column($data, 'notification') ]; 

Beide Beispiele haben dieses Ergebnis:

stdClass Object 
(
    [name] => John 
    [notifications] => Array 
     (
      [0] => sms 
      [1] => email 
     ) 

) 

Oder wiht JSON Syntax:

{"name":"John","notifications":["sms","email"]} 

eval.in demo

+0

Danke @ fusion3k, diese Antwort ist sehr hilfreich für mich, Sie sparen meinen Tag – CERCUA