Hello I have a soap call that returns something like; Result from a print_r(); stdClass Object ( [getCategoryTreeReturn] => Array ( [0] => stdClass Object ( [iId] => 1 [sName] => Cars & Motorbikes [iParentId] => 0 [iTreeCount] => 114302 [iLocalCount] => 0 [aSubCats] => Array ( [0] => stdClass Object ( [iId] => 2 [sName] => Car Electronics [iParentId] => 1 [iTreeCount] => 0 [iLocalCount] => 0 ) [1] => stdClass Object ( [iId] => 5 [sName] => Car Accessories [iParentId] => 1 [iTreeCount] => 57160 [iLocalCount] => 57142 ) [2] => stdClass Object ( [iId] => 16 [sName] => Motorcycles [iParentId] => 1 [iTreeCount] => 11 [iLocalCount] => 0 ) I need to convert that to a multidimensional array to link ID's to Parent ID's. I have created a function which recursively scans the result variable. It writes the rows to a temporary file for later fetching, but it is somewhat slow. Can i maintain those recursive seek to an array. As function is being called inside and inside, i can not return a proper value. Is there any way to maintain those rows without writing to tmp. The function is : --- BEGIN --- function deepseek($val) { foreach ($val as $key => $value) { if (is_object($value)) { $newarr = get_object_vars($newarr); foreach ($newarr as $key2 => $value2) { deepseek($value2); } } if (is_array($value)) { foreach ($value as $key2 => $value2) { deepseek($value2); } } if (!is_array($value) AND !is_object($value)) { if ($key == "iParentId" OR $key == "sName" OR $key == "iId") { $output .= "$value-"; } if ($key == "iTreeCount") { $handle = fopen("tmp/tmp","a"); fwrite($handle,$output."\n"); fclose($handle); unset($output); } } } } --- END --- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php