3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string ="Folder1/Folder2/Folder3/filename1\n"; $string .=" Folder1/Folder2/Folder3/filename2\n"; $string .=" Folder4/Folder2/Folder3/filename3\n"; $string .=" filename4\n"; $string .=" Folder5/filename5\n"; $string .=" Folder5/Folder6/filename6\n"; $parsable = ''; foreach (explode("\n", trim($string)) as $path) { // cut off final newline and explode $entries = explode("/", trim($path)); // cut off leading spaces and explode $file = array_splice($entries, -1); // separate filename from path $path = array_reduce($entries, function($carry, $v) { return $carry."[$v]"; // wrap each folder in square brackets }); $parsable .= "path{$path}[]={$file[0]}&"; // build parsable string (final trailing & will be ignored) } echo $parsable,"\n\n"; parse_str($parsable, $out); var_export($out);

preferences:
29.51 ms | 402 KiB | 5 Q