array levels

array levels

am 14.08.2007 15:45:45 von Luca Cioria

I have to insert a string in an array at a particular level, creating
it if it doesn't exists.

example:

$levels=array(a,b,c) ***number of variables does vary
$name="my_name"

what I'd like to get

$final_array=(a=>array(b=>array(c=>"my_name")))


The final array is being filled in a foreach loop therefore $levels
and $name change at every loop.

How can I do this?

Re: array levels

am 14.08.2007 16:01:49 von ELINTPimp

On Aug 14, 9:45 am, Luca Cioria wrote:
> I have to insert a string in an array at a particular level, creating
> it if it doesn't exists.
>
> example:
>
> $levels=array(a,b,c) ***number of variables does vary
> $name="my_name"
>
> what I'd like to get
>
> $final_array=(a=>array(b=>array(c=>"my_name")))
>
> The final array is being filled in a foreach loop therefore $levels
> and $name change at every loop.
>
> How can I do this?

so...you want your $levels array to be a "map" of sorts, providing the
dimensions of the array?
and you want to push a $name value at the end of this, so you have n-
dimension array, every dimension only one value deep containing either
another array or the $name value?

$final_array = array();
foreach ($levels as $key=>$value) {
$array[$value] = array();
$final_array[] = $array(); // or array_push()
}
$final_array[] $name;

-steve

Re: array levels

am 14.08.2007 17:11:39 von gosha bine

On 14.08.2007 15:45 Luca Cioria wrote:
> I have to insert a string in an array at a particular level, creating
> it if it doesn't exists.
>
> example:
>
> $levels=array(a,b,c) ***number of variables does vary
> $name="my_name"
>
> what I'd like to get
>
> $final_array=(a=>array(b=>array(c=>"my_name")))
>
>
> The final array is being filled in a foreach loop therefore $levels
> and $name change at every loop.
>
> How can I do this?
>

For example, with a simple recursive function

function hierarchize($ary, $value) {
return empty($ary) ? $value :
array(array_shift($ary) =>
hierarchize($ary, $value));
}

# example

print_r(
hierarchize(
array('a', 'b', 'c'), 'myName'));


Hope you like the name. ;)


--
gosha bine

makrell ~ http://www.tagarga.com/blok/makrell
php done right ;) http://code.google.com/p/pihipi