On Thursday 02 December 2004 01:31, Robinson, Matthew wrote:
> lol, perhaps embedded a bit too deep in my pre-amble. My question is
> simply what's a good way to reference a given array entry when you don't
> know where it is or how deep the array is. I can do a multi dimensional
> array search and return an array of keys to locate the item, I then want
> to use that array of keys to be able to reference the data to perhaps do
> work on it ie:
>
> The array is a collection of network data that can consist of address
> allocation entries or other networks which can contain either more
> networks or allocations. I call my search function to locate a
> particular network which returns me an array of keys to locate that
> entry. I then want to pass that to another function to actually work on
> the data.
>
> I have a search function:
>
> $search_result = multi_array_search($net_array,"needle");
>
> now search_result equals an array of keys to locate the needle, this is
> variable in count.
>
> Sometimes the array of keys is 3 entries other times 5, I want a way of
> taking those entries and being able to do something like:
>
> $net_array[multi-dimensional-key] = value;
>
> where sometimes it might be in longhand:
>
> $net_array["net1"]["net2"]["address1"]
>
> or other times:
>
> $net_array["net1"]["address1"]
>
> but you don't know how deep you're going until the search returns you
> the keys.
>
> Hope that clears things a bit!
Certainly a lot clearer.
The only (easy) method I can think of is to use eval(), something like:
$MyKey = "[allocations][network][0]";
$MyKey = '$net_array' . $MyKey;
eval("\$val = $MyKey;");
print_r($val);
Another more messy method would be to use something like preg_match_all() to
grab the individual array keys, ie 'allocations', 'network', '0' then:
switch (number of indices) {
case 1 :
$val = $net_array[$idx1];
break;
case 2 :
$val = $net_array[$idx1][$idx2];
break;
...
}
--
Jason Wong -> Gremlins Associates -> www.gremlins.biz
Open Source Software Systems Integrators
* Web Design & Hosting * Internet & Intranet Applications Development *
------------------------------------------
Search the list archives before you post
http://marc.theaimsgroup.com/?l=php-general
------------------------------------------
/*
Is this the line for the latest whimsical YUGOSLAVIAN drama which also
makes you want to CRY and reconsider the VIETNAM WAR?
*/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php