2017-04-02 5 views
-1

Ich bekomme ein chaotisch $_FILES Array mit PHP.

ich dieses:

Array([data] => 
    Array(
     [name] => Array ([T1] => Array ([V1] => dummy.jpg)) 
     [type] => Array ([T1] => Array ([V1] => image/jpeg)) 
     [tmp_name] => Array ([T1] => Array ([V1] => /tmp/domains/bc3/phpIPIlOG)) 
     [error] => Array ([T1] => Array ([V1] => 0)) 
     [size] => Array ([T1] => Array ([V1] => 89682)) 
    ) 
) 

Ich möchte dies:

Array ([data] => 
    Array ([T1] => 
     Array ([V1] => 
      Array ( 
       [name] => dummy.jpg 
       [type] => image/jpeg 
       [tmp_name] => /tmp/domains/bc3/phpIPIlOG 
       [error] => 0 
       [size] => 89682 
      ) 
     ) 
    ) 

)

Der Name des HTML-Formular-Feld: Daten [T1] [V1]

Ich bin auf der Suche nach einer generischen PHP-Lösung, wo mehrere Dateien hochgeladen werden können und unterschiedliche Benennungsstruktur.

+0

Können Sie Ihre 'HTML' teilen? –

+0

Ich bin nicht daran interessiert, das HTML zu ändern. –

+0

Möchten Sie also die '$ _FILES' an Ihre benötigte Ausgabe in' php' anpassen? –

Antwort

1

Versuchen Sie this function.

function rearrange_files($arr) 
{ 
    foreach($arr as $key => $all) 
    { 
     foreach($all as $i => $val) 
     { 
      $new_array[$i][$key] = $val;  
     }  
    } 
    return $new_array; 
} 

$newFiles = rearrange_files($_FILES); 
+0

Dies funktioniert auf dem Beispiel mit zwei Ebenen auf der Eingabe/Name-Array. Problem ist, wenn mehr Ebenen haben. Grundsätzlich ist es einfach, eine hart codierte Lösung zu erstellen. Die Herausforderung besteht darin, eine generische Lösung zu erstellen, die die unordentlichen $ _FILES für jede beliebige Benennungsstruktur neu anordnet. –