fork download
  1. <?php
  2.  
  3. $input = "data1a;
  4. data2a;
  5. data3a;
  6. data4a;
  7. data5a;
  8. data6a;
  9. data7a;
  10. -----
  11. data1b;
  12. data2b;
  13. data3b;
  14. data4b;
  15. data5b;
  16. data6b;
  17. data7b;
  18. -----
  19. data1b;
  20. data2b;
  21. data3b;
  22. data4b;
  23. data5b;
  24. data6b;
  25. data7b;";
  26.  
  27. //$data = array_map(function($row) {return array_filter(array_map("trim", explode(';', $row)), function($val){return !empty($val);});}, explode('-----', $input));
  28.  
  29. $data = explode('-----', $input); // разбиваем по "-----"
  30.  
  31. $data = array_map(
  32. function($row) {
  33. $row = explode(';', $row); // разбиваем по точке с запятой
  34. $row = array_map("trim", $row); // убираем лишние пробелы и переводы строк
  35. $row = array_filter($row, function($val){return !empty($val);}); // убираем пустые значения
  36. return $row;
  37. }, $data);
  38.  
  39. var_export($data);
  40.  
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
array (
  0 => 
  array (
    0 => 'data1a',
    1 => 'data2a',
    2 => 'data3a',
    3 => 'data4a',
    4 => 'data5a',
    5 => 'data6a',
    6 => 'data7a',
  ),
  1 => 
  array (
    0 => 'data1b',
    1 => 'data2b',
    2 => 'data3b',
    3 => 'data4b',
    4 => 'data5b',
    5 => 'data6b',
    6 => 'data7b',
  ),
  2 => 
  array (
    0 => 'data1b',
    1 => 'data2b',
    2 => 'data3b',
    3 => 'data4b',
    4 => 'data5b',
    5 => 'data6b',
    6 => 'data7b',
  ),
)