Since reflection is used for named params binding (at least for Yii2) you need to define param type explicitly.
So try this:
public function actionSearch(array $p=array()) { ... }
The thing is, assigning array() to function param only sets the default value for it, it tells nothing about param type, so reflection’s isArray() returns false.
Type hinting was introduced in php5.1, I’m pretty sure you have >=5.1 version.