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 <[email protected]> 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
>
>