public function validateArray($file, $key, $against_language, $validate_language)
	{
		//var_dump($key, $against_language); echo '<br /><br />';
		if ($key === 'dateformats')
		{
			$this->validateDateformats($file, $key, $validate_language);
		}
		else if (
			$key === 'datetime' ||
			$key === 'timezones' ||
			$key === 'tokens' ||
			$key === 'report_reasons' ||
			$key === 'PM_ACTION' ||
			$key === 'PM_CHECK' ||
			$key === 'PM_RULE'
		)
		{
			$this->validateArrayKey($file, $key, $against_language, $validate_language);
		}
		else
		{
			$against_keys = array_keys($against_language);
			$key_types = array();
			foreach ($against_keys as $against_key)
			{
				$type = gettype($against_key);
				if (!isset($key_types[$type]))
				{
					$key_types[$type] = 0;
				}
				$key_types[$type]++;
			}

			if (sizeof($key_types) == 1)
			{
				if (isset($key_types['string']))
				{
					$this->validateArrayKey($file, $key, $against_language, $validate_language);
				}
				else if (isset($key_types['integer']))
				{
					$this->validatePluralKeys($file, $key, $against_language, $validate_language);
				}
				else
				{
					$this->output->addMessage(Output::NOTICE, 'Array has mixed types: ' . implode(', ', array_keys($key_types)), $file, $key);
				}
			}
			else
			{
				$this->output->addMessage(Output::NOTICE, 'Array has mixed types: ' . implode(', ', array_keys($key_types)), $file, $key);
			}
		}
	}
public function validateArray($file, $key, $against_language, $validate_language)
	{
		//var_dump($key, $against_language); echo '<br /><br />';
		if ($key === 'dateformats')
		{
			$this->validateDateformats($file, $key, $validate_language);
		}
		else if (
			$key === 'datetime' ||
			$key === 'timezones' ||
			$key === 'tokens' ||
			$key === 'report_reasons' ||
			$key === 'PM_ACTION' ||
			$key === 'PM_CHECK' ||
			$key === 'PM_RULE'
		)
		{
			$this->validateArrayKey($file, $key, $against_language, $validate_language);
		}
		else
		{
			$against_keys = array_keys($against_language);
			$key_types = array();
			foreach ($against_keys as $against_key)
			{
				$type = gettype($against_key);
				if (!isset($key_types[$type]))
				{
					$key_types[$type] = 0;
				}
				$key_types[$type]++;
			}

			if (sizeof($key_types) == 1)
			{
				if (isset($key_types['string']))
				{
					$this->validateArrayKey($file, $key, $against_language, $validate_language);
				}
				else if (isset($key_types['integer']))
				{
					$this->validatePluralKeys($file, $key, $against_language, $validate_language);
				}
				else
				{
					$this->output->addMessage(Output::NOTICE, 'Array has mixed types: ' . implode(', ', array_keys($key_types)), $file, $key);
				}
			}
			else
			{
				$this->output->addMessage(Output::NOTICE, 'Array has mixed types: ' . implode(', ', array_keys($key_types)), $file, $key);
			}
		}
	}
public function validateArray ( $ file , $ key , $ against_language , $ validate_language ) { //var_dump($key, $against_language); echo '<br /><br />'; if ( $ key === 'dateformats' ) { $ this -> validateDateformats ( $ file , $ key , $ validate_language ) ; } else if ( $ key === 'datetime' || $ key === 'timezones' || $ key === 'tokens' || $ key === 'report_reasons' || $ key === 'PM_ACTION' || $ key === 'PM_CHECK' || $ key === 'PM_RULE' ) { $ this -> validateArrayKey ( $ file , $ key , $ against_language , $ validate_language ) ; } else { $ against_keys = array_keys ( $ against_language ) ; $ key_types = array ( ) ; foreach ( $ against_keys as $ against_key ) { $ type = gettype ( $ against_key ) ; if ( ! isset ( $ key_types [ $ type ] ) ) { $ key_types [ $ type ] = 0 ; } $ key_types [ $ type ] ++ ; } if ( sizeof ( $ key_types ) == 1 ) { if ( isset ( $ key_types [ 'string' ] ) ) { $ this -> validateArrayKey ( $ file , $ key , $ against_language , $ validate_language ) ; } else if ( isset ( $ key_types [ 'integer' ] ) ) { $ this -> validatePluralKeys ( $ file , $ key , $ against_language , $ validate_language ) ; } else { $ this -> output -> addMessage ( Output :: NOTICE , 'Array has mixed types: ' . implode ( ', ' , array_keys ( $ key_types ) ) , $ file , $ key ) ; } } else { $ this -> output -> addMessage ( Output :: NOTICE , 'Array has mixed types: ' . implode ( ', ' , array_keys ( $ key_types ) ) , $ file , $ key ) ; } } }
Decides which array validation function should be used, based on the key

Supports:
- Dateformats
- Datetime
- Timezones
- BBCode Tokens
- Report Reasons
- Plurals

@param	string	$file		File to validate
@param	string	$key		Key to validate
@param	array	$against_language		Original language
@param	array	$validate_language		Translated language
@return	null
Decides which array validation function should be used based on the key