Figured it out.
However new problem, the protected methods endup as keys like [*formermethodturnedkey]. They don't seem to be accessible. How can one access keys like this?
protected function _object_to_array($obj){
//we want to preserve the object name to the array
//so we get the object name in case it is an object before we convert to an array (which we lose the object name)
$obj_name = false;
if(is_object($obj)){
$obj_name = get_class($obj);
$obj = (array) $obj;
}
//if obj is now an array, we do a recursion
//if obj is not, just return the value
if(is_array($obj)) {
$new = array();
//initiate the recursion
foreach($obj as $key => $val) {
//we don't want those * infront of our keys due to protected methods
$new[$key] = self::_object_to_array($val);
}
//now if the obj_name exists, then the new array was previously an object
//the new array that is produced at each stage should be prefixed with the object name
//so we construct an array to contain the new array with the key being the object name
if(!empty($obj_name)){
$new = array(
$obj_name => $new,
);
}
}else{
$new = $obj;
}
return $new;
}