Re: Converting string representation of a directory to multi-dimensional array

From: Date: Tue, 06 Feb 2007 00:18:42 +0000
Subject: Re: Converting string representation of a directory to multi-dimensional array
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-248402@lists.php.net to get a copy of this message
On Mon, February 5, 2007 12:27 pm, Matt Carlson wrote: > Over the weekend, I was tasked with taking a string representation of > a directory ('\Interface\Addons\<some dir>\<some file>'), which can > vary in length (no set number of depths) to a multi-dimensional array > (i.e. array('Interface' => array('Addons' => array('<some > dir>' => > <somefile>)));). > > We came up with a very ugly hack to do it, but I'm curious if anyone > can help us wrap our head around a better solution, without using eval > (which we were able to find that solution quickly, but do not want to > use eval). > > Our situation is a little unique in the fact that these files don't > actually exist on a filesystem, so it makes it a bit more tough to > actually create this array. > > Thanks for any help you can give in cleaning this up somewhat. > > Here is the function we currently use: > > <?php > > $array = array(); > > addToList('\interface\addons\clearfont\clearfont.toc2', $array); > addToList('\interface\addons\clearfont\clearfont.toc3', $array); > addToList('\interface\addons\clearfont\clearfont.toc4', $array); > addToList('\interface\addons\clearfont\clearfont.toc5', $array); > addToList('\interface\addons\clearfont\subdir\something.toc', $array); function addToList($path){ $parts = explode('\\', $path); $result = array(); $parts = array_reverse($parts); foreach($parts as $part){ //something with array_splice here... $result = array_splice(array($result), $part); //??? } } -- Some people have a "gift" link here. Know what I want? I want you to buy a CD from some starving artist. http://cdbaby.com/browse/from/lynch Yeah, I get a buck. So?

« previous php.general (#248402) next »