If you have a composed foreign key, loadDataFromArray() fails because it tries to check each single key as if it would a simple key (so, not considering it's only a part of a composed one)
Issue is in the following lines:
if ($column->isForeignKey() && !is_null($value))
{
$relatedTable = $this->dbMap->getTable($column->getRelatedTableName());
if (!isset($this->object_references[$relatedTable->getPhpName().'_'.$value]))
{
throw new InvalidArgumentException(sprintf('The object "%s" from class "%s" is not defined in your data file.', $value, $relatedTable->getP
}
$value = $this->object_references[$relatedTable->getPhpName().'_'.$value]->getByName($column->getRelatedName(), BasePeer::TYPE_COLNAME);
}