AFAICT esto no es posible (todavía) usando la sintaxis de matriz o las expresiones regulares de comparación, el código responsable de la transformación solo maneja campos únicos y matrices planas, consulte
Fuente> \Cake \Base de datos\Expresión\Comparación::_stringExpression()
Sin embargo, esto es muy posible utilizando una expresión de comparación de tuplas, que admite el manejo de conjuntos de tuplas listos para usar. Internamente, las asociaciones lo utilizan para manejar claves compuestas.
$fields = ['order_date', 'order_number'];
$types = ['date', 'integer'];
$values = [
['2016-03-11', 3455453],
['2016-03-18', 83545454],
['2016-06-17', 5354544]
];
$query->where(
new \Cake\Database\Expression\TupleComparison($fields, $values, $types, 'IN')
);
Fuente> \Cake\Database \Expresión\TupleComparison