private static function extractSchemaData(ARSchema $schema, &$dataArray, $transformArray) { foreach ($schema->getArrayFieldList() as $name) { $dataArray[$name] = is_string($dataArray[$name]) ? @unserialize($dataArray[$name]) : ''; } $recordData = array_intersect_key($dataArray, $schema->getFieldList()); $dataArray = array_diff_key($dataArray, $recordData); if ($transformArray) { $recordData = call_user_func_array(array($schema->getName(), 'transformArray'), array($recordData, $schema)); } return $recordData; }