2016-08-30 2 views
1

Ein kleines Problem mit Array in PHP haben.Make neues Array in PHP

Ich habe dieses Array:

I have this array.

Es gibt viele [ 'Varianten'] unten.

Ich brauche ein neues Array wie folgt zu erstellen:

new array like this

von allen [ 'Varianten'].

Ich habe eine Funktion mit diesem

$variants = array(); 
$features = $features['18']; foreach ($features as $feature) { 
    if (!empty($feature['variants'])) { 
     $variants = array_merge($variants, $feature['variants']); 
    } 
} 
    fn_print_r($variants); 
return $variants; 

Aber es Fehler haben: array_merge() [function.array-merge]: Argument # 2 kein Array ist.

Wie kann ich das beheben?

+0

Bitte fügen Sie Ihre Arrays in Ihre Frage ein. Wo hast du auch einen Schlüssel "18"? Und was genau ist in '$ features', bevor Sie es durchlaufen? – Rizier123

+0

$ features ['18 '] - Array wie 1. Bild –

+0

Ihre foreach-Schleife ergibt dann keinen Sinn, da Sie jeden Wert durchlaufen und ich sehe nicht, warum Sie 'variants' verschmelzen wollen, da Sie nur haben es einmal in Ihrem Array. Warum nicht einfach '$ variants = $ features [" variants "];'? – Rizier123

Antwort

0

Wenn Sie richtigen Code - Rewrite Linie 3:

if (!empty($feature['variants'])) { 

auf:

if (!empty($feature['variants']) && is_array($feature['variants'])) { 

Und ich würde den Anruf zu array_values. Zum Beispiel:

foreach($features as $feature) 
{ 
    $result = []; 
    if(isset($feature['variants']) && is_array($feature['variants'])) 
    { 
     $result = array_merge($result, array_values($feature['variants'])); 
    } 
}