public static function findMultipleByUuidsAndExtensions($arrUuids, $arrExtensions, array $arrOptions = array())
{
if (!is_array($arrUuids) || empty($arrUuids) || !is_array($arrExtensions) || empty($arrExtensions)) {
return null;
}
foreach ($arrExtensions as $k => $v) {
if (!preg_match('/^[a-z0-9]{2,5}$/i', $v)) {
unset($arrExtensions[$k]);
}
}
$t = static::$strTable;
foreach ($arrUuids as $k => $v) {
// Convert UUIDs to binary
if (\Validator::isStringUuid($v)) {
$v = \StringUtil::uuidToBin($v);
}
$arrUuids[$k] = "UNHEX('" . bin2hex($v) . "')";
}
if (!isset($arrOptions['order'])) {
$arrOptions['order'] = "{$t}.uuid!=" . implode(", {$t}.uuid!=", $arrUuids);
}
return static::findBy(array("{$t}.uuid IN(" . implode(",", $arrUuids) . ") AND {$t}.extension IN('" . implode("','", $arrExtensions) . "')"), null, $arrOptions);
}