P: n/a

Hi all,
Wondering if anyone can help me. If i have an associative array:
$arr = array(
"one" =array(1, 2, 3),
"two" =array(5, 6),
"three" =array(7,8,9,10)
....
"n" =array(p,q,r....)
);
and I want to combine the values for each value in the associative array to
produce one array of "n" dimensions, how is
this best done? The number of dimensions of the array is not known until
runtime, so addressing the array can't be done in a hardcoded fashion.
To exemplify what i'm after as the end result (in the case of there being 3
values in $arr, as above);
$multi_arr = array(
1 =array(
5 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
),
6 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
)
),
2 =array (
5 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
),
6 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
)
),
3 =array (
5 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
),
6 =array (
7 ="value",
8 ="value",
9 ="value",
10 ="value"
)
)
);
At the moment, I'm using a loop to build the necessary number of array
subscripts in a string, then eval()ing the string, as a means of both
creating and addressing the array. Which works, but it's a sloppy approach.
I'm just wondering if anyone has another solution to the problem?
Any help appreciated. My apologies for the length of the post.
Regards
Miles  
Share this Question
P: n/a

Miles wrote:
Hi all,
Wondering if anyone can help me. If i have an associative array:
$arr = array(
"one" =array(1, 2, 3),
"two" =array(5, 6),
"three" =array(7,8,9,10)
....
"n" =array(p,q,r....)
);
and I want to combine the values for each value in the associative array to
produce one array of "n" dimensions, how is
this best done? The number of dimensions of the array is not known until
runtime, so addressing the array can't be done in a hardcoded fashion.
At the moment, I'm using a loop to build the necessary number of array
subscripts in a string, then eval()ing the string, as a means of both
creating and addressing the array. Which works, but it's a sloppy approach.
I'm just wondering if anyone has another solution to the problem?
Any help appreciated. My apologies for the length of the post.
Regards
Miles
function arrMerge($arr) {
$list = array();
$keys = array_keys($arr);
foreach($keys as $each) {
if(is_array($arr[$each])) $list = array_merge($list,
arrMerge($arr[$each]));
else array_push($list, $arr[$each]);
}
return $list;
}
Hendri Kurniawan  
P: n/a

I think this does it where array values become array keys...
$arrays = array(
'any'=>array(11,22),
'key'=>array(33,44),
'will'=>array(55,66),
'work'=>array(77,88)
);
$multi = '';
$arrays = array_reverse($arrays, true);
foreach($arrays as $array){
$tmp = array();
foreach($array as $val){
$tmp[$val] = $multi;
}
$multi = $tmp;
}
print_r($multi);   This discussion thread is closed Replies have been disabled for this discussion.   Question stats  viewed: 1184
 replies: 2
 date asked: Jan 9 '07
