I think you can do something like this
$rules = [
'sell.*' => 'required|sell|exists:stock,id',
'sell.*.*' => 'required|sell|exists:exchange,id',
]);
Note: I didn't tested this at all!
Another solution would be structuring the data a bit differently.
{
"sell": {
"111":[
{"id": 1},
{"id": 2},
{"id": 3}
]
}
}
I believe you can then do this in your validation
$rules = [
'sell.*' => 'required|sell|exists:stock,id',
'sell.*.id' => 'required|sell|exists:exchange,id',
]);
Documentation: https://laravel.com/docs/5.8/validation#validating-arrays
If this isn't working I would probably make my own custom validation rule to validate this really specific case!