Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 12th, 2012  |  syntax: None  |  size: 1.66 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to concatenate CSV rows into new rows?
  2. "1", "2", "3", "4"
  3.  "5", "6", "7", "8"
  4.  "9","10","11","12"
  5. "13","14","15","16"
  6. "17","18","19","20"
  7. "21","22","23","24"
  8. "25","26","27","28"
  9. "29","30","31","32"
  10. "33","34","35","36"
  11.        
  12. 1,2,3,4,5,6,7,8,9,10,11,12
  13. 13,14,15,16,17,18,19,20,21,22,23,24
  14. 25,26,27,28,29,30,31,32,33,34,35,36
  15.        
  16. $path = "data.csv";
  17. $row = 0;
  18. $newrow = 0;
  19. $newrows = array();
  20. if (($handle = fopen($path, "r")) !== FALSE) {
  21.   while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  22.     $newrows[$newrow] = implode("," $data);
  23.     if ($row % 3) $newrow++;
  24.     $row++;
  25.   }
  26.   fclose($handle);
  27. }
  28.        
  29. $newrows = array (
  30.   [0] = "1,2,3,4,5,6,7,8,9,10,11,12",
  31.   [1] = "13,14,15,16,17,18,19,20,21,22,23,24",
  32.   [2] = "25,26,27,28,29,30,31,32,33,34,35,36"
  33. )
  34.        
  35. array (
  36.   [0] => 1,2,3,4,13,14,15,16,25,26,27,28
  37.   [1] => 5,6,7,8,17,18,19,20,29,30,31,32
  38.   [2] => 9,10,11,12,21,22,23,24,33,34,35,36
  39. )
  40.        
  41. $path = "data.csv";
  42. $row = 1;
  43. if (($handle = fopen($path, "r")) !== FALSE) {
  44.   while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  45.     for ($i = 1; $i <= 3; $i++) {
  46.       if ($row % $i == 0) $newrows[$i] .= implode(",", $data);
  47.     }
  48.     $row++;
  49.   }
  50. }
  51.  
  52. print_r($newrows);
  53.  
  54. Array (
  55.   [1] => 1,2,3,45,6,7,89,10,11,1213,14,15,1617,18,19,2021,22,23,2425,26,27,2829,30,31,3233,34,35,36
  56.   [2] => 5,6,7,813,14,15,1621,22,23,2429,30,31,32
  57.   [3] => 9,10,11,1221,22,23,2433,34,35,36
  58. )
  59.        
  60. $newrow = 0; $row = 1;
  61. while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  62.     if( !isset( $newrows[$newrow])) $newrows[$newrow] = '';
  63.     $newrows[$newrow] .= implode(",", $data);
  64.     if ($row % 3 == 0) {
  65.         $newrow++;
  66.     } else {
  67.         $newrows[$newrow] .= ', ';
  68.     }
  69.     $row++;
  70. }