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