<?
error_reporting(-1);
$dataArray=array(
    'id'=>1,
	'name'=>'Thomas',
	'age'=>20,
	'email'=>'thomas@gmail.com',
	'password'=>'dr0WsaPp',
	#'birthday'=>'20.07.1993',
	'ip'=>'127.0.0.1',
	'time'=>'18.08.2013 23:15',
	'token'=>'SJkjksdWLKWpeeSDkrrE',
	'source'=>'127.0.0.1',
	'wrongProperty0'=>'someValue',
	'wrongProperty1'=>'someValue',
);

function validateProperties(array $dataArray){
	$propertiesArray=array_flip(array('id', 'name', 'age', 'email', 'password', 'birthday', 'ip', 'time', 'token', 'source'));
	$redundant=array_diff_key($dataArray, $propertiesArray);
	$missing=array_diff_key($propertiesArray, $dataArray);
	if($redundant){
		$output=(count($redundant)>1) ? "These keys are " : "This key is ";
		$output.="redundant: ";
		$output.=implode(", ", array_keys($redundant)).'.'.PHP_EOL; 
	}
	if($missing){
		$output.=(count($missing)>1) ? "These keys are " : "This key is ";
		$output.="missing: ";
		$output.=implode(", ", array_keys($missing)); 
	}	
	echo rtrim($output, ", ").'.';
}
validateProperties($dataArray);
?>