Re: [PHP] Get all the keys from a hierarchical hash

2011-06-24 Thread Fatih P.
use recursive calls to fetch them all in one array and there will be memory
cost.
refer array_keys function: http://php.net/manual/en/function.array-keys.php

not sure but this should be working.

function *get_keys_recursive*($arr) {
while (list($k, $v) = each($arr)) {
   if (is_array($v) === true) {
 return array_keys(array_merge($v,* get_array_keys*($v)));
   } else {
 return array_keys($k);
   }
   }
}



On Thu, Jun 23, 2011 at 11:17 PM, Scott Baker bak...@canbytel.com wrote:

 I have a multi-tier hash (see below) and I'd like to be search the
 hash for a given $id, and return that section, regardless of how many
 layers deep it is. Sort of like how xpath works?

 Once I have that I'd like get ALL the children of a given node. So I
 could ask for 86, and get 36, 38, 56, etc and all THEIR children.
 Basically I want *all* the ID #s that are children.

 Array
 (
[88] = Array
(
[109] =
)

[86] = Array
(
[36] = Array
(
[8] =
[121] =
[127] =
[135] =
[144] =
[161] =
[165] =
)

[38] = Array
(
[18] =
[39] =
[156] =
[158] =
[182] =
)

[56] =
[97] =
[107] = Array
(
[240] =
)

[115] =
[123] =
[146] =
[149] =
[223] =
)

[157] = Array
(
[3] = Array
(
[5] = Array
(
[11] =
)

[13] = Array
(
[6] =
[7] =
[98] = Array
(
[81] =
)

)

[111] = Array
(
[10] =
[17] =
[110] =
)

)

[148] = Array
(
[9] =
[87] =
[102] =
[104] =
[114] =
[130] =
[133] =
[160] =
[201] =
[237] =
[238] =
)

)

 )

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




[PHP] Get all the keys from a hierarchical hash

2011-06-23 Thread Scott Baker
I have a multi-tier hash (see below) and I'd like to be search the
hash for a given $id, and return that section, regardless of how many
layers deep it is. Sort of like how xpath works?

Once I have that I'd like get ALL the children of a given node. So I
could ask for 86, and get 36, 38, 56, etc and all THEIR children.
Basically I want *all* the ID #s that are children.

Array
(
[88] = Array
(
[109] =
)

[86] = Array
(
[36] = Array
(
[8] =
[121] =
[127] =
[135] =
[144] =
[161] =
[165] =
)

[38] = Array
(
[18] =
[39] =
[156] =
[158] =
[182] =
)

[56] =
[97] =
[107] = Array
(
[240] =
)

[115] =
[123] =
[146] =
[149] =
[223] =
)

[157] = Array
(
[3] = Array
(
[5] = Array
(
[11] =
)

[13] = Array
(
[6] =
[7] =
[98] = Array
(
[81] =
)

)

[111] = Array
(
[10] =
[17] =
[110] =
)

)

[148] = Array
(
[9] =
[87] =
[102] =
[104] =
[114] =
[130] =
[133] =
[160] =
[201] =
[237] =
[238] =
)

)

)

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