2017-03-03 10 views
-3

in meiner Beziehung Datenbank foreach,wie in innerer Anordnung

wenn id_sub_bidang 1 dann nama_sub_bidang = "Frontend deveoper".

wenn id_sub_bidang = 2 dann nama_sub_bidang "Senior Marketing"

meinen Code

$data = Company::find($id); 

      $result_data = array(); 

      foreach ($data->posting_job as $hasil) { 

       foreach ($data->sub_bidang as $value) { 

        $result_data[] = [ 

         'id_sub_bidang' => $hasil->id_sub_bidang, 
         'nama_sub_bidang' => $value->nama 
        ]; 
       } 

      } 

      return response()->json($result_data); 

die Ausgabe

[ 
     { 
     "id_sub_bidang": 1, 
     "nama_sub_bidang": "Frontend Developer" 
     }, 
     { 
     "id_sub_bidang": 1, 
     "nama_sub_bidang": "Senior Marketing" 
     }, 
     { 
     "id_sub_bidang": 2, 
     "nama_sub_bidang": "Frontend Developer" 
     }, 
     { 
     "id_sub_bidang": 2, 
     "nama_sub_bidang": "Senior Marketing" 
     } 
] 

erwartete Ergebnis

[ 
     { 
     "id_sub_bidang": 1, 
     "nama_sub_bidang": "Frontend Developer" 
     }, 
     { 
     "id_sub_bidang": 2, 
     "nama_sub_bidang": "Senior Marketing" 
     } 
] 

Ich möchte interne Array Schleife aber nicht funktioniert. Also, ich benutze diesen Weg. was das Problem?

+0

Teilen Sie Ihre '$ data'? – C2486

+0

Was ist Ihr erwartetes Ergebnis? – martiendt

+0

@martiendt Sorry, wurde hinzugefügt :) – bamsarts

Antwort

0

Ihre foreach ändern Schleifen dies zu:

foreach ($data->posting_job as $hasil) { 

     foreach ($hasil->id_sub_bidang as $hasilid) { 

       $result_data[] = ['id_sub_bidang' => $hasil->id_sub_bidang]; 

       foreach ($data->sub_bidang as $value) { 
        $result_data[] = ['nama_sub_bidang' => $value->nama]; 
       } 
     } 
} 
+0

Ungültige Argument für foreach() Dieser Code ** foreach ($ hasil-> id_sub_bidang als $ hasilid) ** – bamsarts

0

ein Array bauen dann die Methode rekursiv unter Verwendung von doppelten Eintrag des Arrays zu reinigen.

array_replace_recursive


Eine andere Lösung

$empty_stats = Array(
    'id_sub_bidang' => null, 
    'nama_sub_bidang' => null 
); 

foreach ($array as $value) { 
    if (!array_key_exists($id_sub_bidang, $array)) { 
     $array[] = $empty_stats; 
    } 
    $array[] = [ 

     'id_sub_bidang' => $hasil->id_sub_bidang, 
     'nama_sub_bidang' => $value->nama 
    ]; 
}