PHPバージョン
4+
/* インデックス配列(Indexed Array)タイプ */
var_dump(is_array(array(1, 2, 3))); // bool(true)
var_dump(is_array([1, 2, 3]));      // bool(true)
var_dump(is_array([]));             // bool(true)

/* 連想配列(Associative Array) */
var_dump(is_array(array('name' => 'foo', 'age' => 30))); // bool(true)
var_dump(is_array(['name' => 'foo', 'age' => 30]));      // bool(true)

/* ブール(boolean)および文字列 */
var_dump(is_array(true));            // bool(false)
var_dump(is_array(false));           // bool(false)
var_dump(is_array('array'));         // bool(false)

/* その他のタイプ */
var_dump(is_array(100));             // bool(false)
var_dump(is_array(null));            // bool(false)

/* タイプキャスティング(Type Casting、型変換) */
var_dump(is_array((array) 'foo'));   // bool(true)
var_dump(is_array((array) 100));     // bool(true)
is_array(mixed $value): bool
$a = array(); // array()を利用した空の配列
$b = []; // []を利用した空の配列 => PHP 5.4+ 導入

var_dump(is_array($a)); // bool(true)
var_dump(is_array($b)); // bool(true)
class MyClass {
    public $property;

    public function __construct($value) {
        $this->property = $value;
    }
}

$obj = new MyClass('value');
var_dump(is_array($obj)); // bool(false)
function my_function($data) {
	if (!is_array($data)) {
		throw new InvalidArgumentException('引数は配列である必要があります。');
	}
	// ...
}
$data = maybe_get_array();

if (is_array($data)) {
	foreach ($data as $item) {
		// ...
	}
}