you can do this with a bit of reference magic...

<?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);

?>

there might a cleaner/better way - if anyone can correct me I'd
be glad to learn :-)

Yonatan Ben-Nes wrote:
> Hi all,
> 
> I got a problem with creating a multidimensional array which it's size is
> unknown.
> I already made it work like this (example):
> <?php
> $array = array('six','five','four','three','two','one');
> 
> for ($i = count($array)-1; $i >= 0; $i--) {
>  $array_keys_string_representation .= '["'.$array[$i].'"]';
> }
> 
> eval('$new_array'.$array_keys_string_representation.'["node_title"] =
> "string value";');
> ?>
> 
> The problem is that I don't like using eval() cause it's slow &
> insecure.....
> 
> I want to do something like this (doesn't work):
> <?php
> $array = array('six','five','four','three','two','one');
> 
> for ($i = count($array)-1; $i >= 0; $i--) {
>  $array_keys_string_representation .= '["'.$array[$i].'"]';
> }
> 
> $new_array.$array_keys_string_representation.'["node_title"] = "string
> value";
> ?>
> 
> Anyone got any idea how can I build such an array without eval()?
> 
> Thanks a lot in advance,
>  Ben-Nes Yonatan
> 

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

Reply via email to