2017-04-03 2 views
-1

ich dieses Array bekam:Multidimensionale Array CSV

array (
    'cat' => 
    array (
    0 => 
    array (
     'name' => 'Sales', 
     'url' => 'http://videos.volkswagen.nl/videos/videos/', 
     'subs' => 
     array (
     0 => 
     array (
      'full_url' => 'http://videos.volkswagen.nl/videos/assistentiesystemen/', 
      'key' => 'assistentiesystemen', 
      'key_clean' => 'Assistentiesystemen', 
      'videos' => 
      array (
      0 => 
      array (
       'nice_name' => 'Multi Collision braking system', 
       'vid_url' => 'www.youtube.com/video/3lGfTZdVK1s', 
      ), 
      1 => 
      array (
       'nice_name' => 'Lane Assist', 
       'vid_url' => 'www.youtube.com/video/II68oVm4zro', 
      ), 
      2 => 
      array (
       'nice_name' => 'Traffic Jam Assist', 
       'vid_url' => 'www.youtube.com/video/tCe8Zpz8ceQ', 
      ), 
      3 => 
      array (
       'nice_name' => 'Sign assist', 
       'vid_url' => 'www.youtube.com/video/SypjMPcSWfk', 
      ), 
      4 => 
      array (
       'nice_name' => 'Park assist', 
       'vid_url' => 'www.youtube.com/video/38BbjLmVJXk', 
      ), 
      5 => 
      array (
       'nice_name' => 'Front assist', 
       'vid_url' => 'www.youtube.com/video/kCpQojqZeWE', 
      ), 
      6 => 
      array (
       'nice_name' => 'Trailer assist', 
       'vid_url' => 'www.youtube.com/video/N0fa4dUBkvE', 
      ), 
      7 => 
      array (
       'nice_name' => 'Area view', 
       'vid_url' => 'www.youtube.com/video/6mgDraWpGvE', 
      ), 
     ), 
     ), 
     1 => 
     array (
      'full_url' => 'http://videos.volkswagen.nl/videos/comfortsystemen/', 
      'key' => 'comfortsystemen', 
      'key_clean' => 'Comfortsystemen', 
      'videos' => 
      array (
      0 => 
      array (
       'nice_name' => 'Gesture Control', 
       'vid_url' => 'www.youtube.com/video/bOejnFiC88E', 
      ), 
      1 => 
      array (
       'nice_name' => 'ACC Adaptive Cruise Control', 
       'vid_url' => 'www.youtube.com/video/W5L75iR4ySw', 
      ), 
      2 => 
      array (
       'nice_name' => 'Rear View', 
       'vid_url' => 'www.youtube.com/video/v272JxYMjlo', 
      ), 
      3 => 
      array (
       'nice_name' => 'Hill Hold', 
       'vid_url' => 'www.youtube.com/video/IzZFSp0Z8ZQ', 
      ), 
      4 => 
      array (
       'nice_name' => 'Dynamic Light Assist', 
       'vid_url' => 'www.youtube.com/video/mRWEdXZYcio', 
      ), 
     ), 
     ), 
    ); 

Ich möchte in eine CSV-Datei alle Daten konvertieren. Das Problem ist, ich kann es nicht funktionieren, weil alle Sub-Arrays.

Dies ist, was ich versucht habe:

header("Content-Disposition: attachment; filename=\"demo.xls\""); 
header("Content-Type: application/vnd.ms-excel;"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
$out = fopen("php://output", 'w'); 
foreach ($result as $data) 
{ 
    $finalResult = []; 
    array_walk_recursive($data, function($item) use (&$result) { 
      $finalResult[] = $item; 
     }); 
    fputcsv($out, $finalResult,"\t"); 
} 
fclose($out); 

Dies ist, wie ich die CSV-Datei in Excel aussehen wollen:

enter image description here

Irgendeine Idee, wie ich diese Arbeit bekommen? Jede Hilfe wird sehr geschätzt.

+3

Könnten Sie bitte aktualisieren Sie die Frage stellt, zu tun Sie erwarten würden eine Reihe von CSV-Ausgabe zu zeigen? Wie möchten Sie mehrdimensionale Daten in zwei Dimensionen reduzieren? – mkaatman

+0

Auch wenn Sie uns 'var_export()' anstelle von 'print_r()' zeigen, erhalten wir eine Array-Darstellung, die wir kopieren und einfügen und unsere Antworten einfach testen können. Diejenigen von uns, die sich bemühen, unsere Antworten zu testen, sind – RiggsFolly

+0

Ein Beispiel hinzugefügt @mkaatman –

Antwort

1

Dies ist wahrscheinlich das, was Sie wollen

$out = fopen("tst.csv", 'w'); 
$finalResult = []; 
foreach ($result['cat'] as $sales){ 
    foreach ($sales['subs'] as $occ => $stuff){ 
     foreach ($stuff['videos'] as $video) { 
      $line = [$sales['name'], $stuff['key'], $video['vid_url'], $video['nice_name'] ]; 
      //$finalResult[] = $a; 
      fputcsv($out, $line); 
     } 
    } 
} 
//print_r($finalResult); 
fclose($out); 

Welche

Sales,assistentiesystemen,www.youtube.com/video/3lGfTZdVK1s,"Multi Collision braking system" 
Sales,assistentiesystemen,www.youtube.com/video/II68oVm4zro,"Lane Assist" 
Sales,assistentiesystemen,www.youtube.com/video/tCe8Zpz8ceQ,"Traffic Jam Assist" 
Sales,assistentiesystemen,www.youtube.com/video/SypjMPcSWfk,"Sign assist" 
Sales,assistentiesystemen,www.youtube.com/video/38BbjLmVJXk,"Park assist" 
Sales,assistentiesystemen,www.youtube.com/video/kCpQojqZeWE,"Front assist" 
Sales,assistentiesystemen,www.youtube.com/video/N0fa4dUBkvE,"Trailer assist" 
Sales,assistentiesystemen,www.youtube.com/video/6mgDraWpGvE,"Area view" 
Sales,comfortsystemen,www.youtube.com/video/bOejnFiC88E,"Gesture Control" 
Sales,comfortsystemen,www.youtube.com/video/W5L75iR4ySw,"ACC Adaptive Cruise Control" 
Sales,comfortsystemen,www.youtube.com/video/v272JxYMjlo,"Rear View" 
Sales,comfortsystemen,www.youtube.com/video/IzZFSp0Z8ZQ,"Hill Hold" 
Sales,comfortsystemen,www.youtube.com/video/mRWEdXZYcio,"Dynamic Light Assist"