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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:

based on an answer to an old post ... below shows how to
uses references to walk 'into' an array and set/create multilevel
elements - given a bit of thought you should be able to figure out
how to apply the concept to your own problem:

<?php

$ref  = null;
$keys = array("six","five","four","three","two","one");
$val  = "string value"; // the node value
$arr  = array(); // generated array

$ref =& $arr;

while ($key = array_pop($keys)) {
	$ref[$key] = array();
	$ref =& $ref[$key];
}

$ref = $val;
var_dump($arr);

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux