Вы можете проверить, установлен ли он вообще, и является ли он массивом следующим образом:
isset($request['red-mat_tactic_id']) && is_array($request['red-mat_tactic_id'])
Это означает, что счет будет работать так:
count((isset($request['red-mat_tactic_id']) && is_array($request['red-mat_tactic_id'])) ? $request['red-mat_tactic_id'] : [])
Чтобы он был лучше для чтения, вы, вероятно, разбили бы это на две строки:
$isValueSet = $request['red-mat_tactic_id'] && is_array($request['red-mat_tactic_id'];
count(isValueSet ? $request['red-mat_tactic_id'] : [])
В зависимости от того, что именно является содержимым индекса массива, это можно упростить до:
count($request['red-mat_tactic_id'] ?? [])
Использование нулевой оператор объединения .