2016-04-06 14 views
0

Ich mache Laravel-Projekt. Ich habe eine SQL-Abfrage wieWie bekomme ich ein eindimensionales Array aus einem zweidimensionalen Array in PHP/Laravel?

$catcount=2; 
    for($i=0;$i<$catcount;$i++) { 
     $subCat[] = Category::where('parent_id', '=', $userCategory[$i])->pluck('id'); 
    } 

$ subcat als ein Array zurückgibt,

[[54,55,56,57,58],[48,49,50,51,52]] 

ich als eindimensionales Array dieses Array wollen wie,

[54,55,56,57,58,48,49,50,51,52] 

Ich bin nicht immer wie das geht, bitte hilfe und danke im voraus.

+0

'array_merge ($ subcat [0], $ subcat [1])' – Adersh

+0

was ist, wenn Zählung mehr als 2 – Amarja

+0

in diesem Fall ist, meine [Antwort] überprüfen (http : //stackoverflow.com/questions/36448162/how-to-get-single-dimensional-array-from-two-dimensional-array-in-php-laravel/36449487#36449487) – Adersh

Antwort

1

Ich schlage vor, dass Sie IDs merge vor der Abfrage, so dass Sie einige Laufzeit durch den Zugriff auf die Datenbank nur einmal speichern.

$catcount = 2; 
    $parents_ids = []; 
    for ($i = 0; $i < $catcount; $i++) { 
     $parents_ids[] = $userCategory[$i]; 
    } 
    $subCats = Category::whereIn('parent_id', $parents_ids)->pluck('id'); 
+0

Danke, ich habe, was ich genau wollte :) – Amarja

0
$catcount=2; 
for($i=0;$i<$catcount;$i++) { 
    $subCat[] = Category::where('parent_id', '=' $userCategory[$i])->pluck('id'); 
} 

array_merge($subCat[0],$subCat[1]); 
+0

Danke für die Antwort, aber was ist, wenn ich habe als 3 oder 4, etc – Amarja

0

Von Ihrem letzten Array, können Sie nur ein Array

list($a1, $a2) = $subCat; 
$subCat = array_merge($a1, $a2); 
0

Es gibt viele Möglichkeiten, dies zu tun, verschmelzen tun. Einer von ihnen: einfach, aber universell lesbar und aktualisierbar (wenn etwas in der Datenstruktur ändern wird, werden Sie in der Lage sein, diesen Code in kürzester Zeit zu aktualisieren):

$newArr = []; 
foreach ($subCat as $subArr) { 
    foreach ($subArr as $value) { 
     $newArr[] = $value; 
    } 
} 
0

, wenn Ihr Array mehrere Elemente aufweisen, Sie können sie mit diesem Code zusammenführen:

$subCats = call_user_func_array("array_merge", $subCat); 
Verwandte Themen