Re: create multidimensional array with n depth

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

 



My brain is really fried right now and I'm sure someone has a more indepth answer/opinion on this subject, but it occurs to me that you can get away from using eval() if you do some kind of recursive function using:

$temp[] = array($arrval1, $arrval2,...);


and $arrval1 could == array($arr2val1, $arr2val2,...);


using the [] syntax and/or assigning arrays to other array value positions could do what you want it to do if you can work out the resursive functionality.  No need to use strings and eval() all over the place.

Sorry my head's not up to resursion right now..  plus I never did have as intuitive of a feel for it as I'd ever have liked (understand the concept and can grok other people's stuff, but never bothered writing any of my own);

Maybe that's a nudge in the right direction while the others finish lunch or coffee or whatever.

-TG

= = = Original message = = =

Hi all:
I've been trying to create a multidimensional array with n depth in php. 
Tried to use a recursive function passing array references by pointers but 
seems like it's not possible or I still don't understand this subject 
enough. Finally managed to get it going using the eval function. The code 
below converts a seperated string into a multi dimensional array with n 
depth:

e.g. $array['1_20-2_16-7_14'] = 12 will become 
$eval_array[1][20][2][16][7][14] = 12

      foreach(array_keys($this->quantity_array) AS $key)
        if($this->quantity_array[$key] > 0)
          $combinations = explode('-', $key);
          $eval_string = '$eval_array';
          foreach(array_keys($combinations) AS $key2)
            $option_key_value = explode('_', $combinations[$key2]);
            $eval_string .= 
'['.$option_key_value[0].']['.$option_key_value[1].']';
          
          $eval_string .= ' = '.$this->quantity_array[$key].';';
          eval($eval_string);
        
      

Using eval() for it seems a bit expensive to me. So I've been wondering if 
there is an easier way?
TIA

Gunter 


___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.

-- 
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