diff --git a/src/ValidatorList.php b/src/ValidatorList.php index 971262b..222fda5 100644 --- a/src/ValidatorList.php +++ b/src/ValidatorList.php @@ -518,7 +518,7 @@ public static function isArray($val) } /** - * 验证值是否是一个非自然数组 map (key - value 形式的) + * 验证值是否是一个非自然数组 map (key不是自然增长的 OR key - value 形式的) * @param mixed $val * @return bool */ @@ -529,13 +529,9 @@ public static function isMap($val) } /** @var array $val */ - foreach ($val as $k => $v) { - if (\is_string($k)) { - return true; - } - } - - return false; + $keys = array_keys($val); + + return array_keys($keys) !== $keys; } /** @@ -549,22 +545,10 @@ public static function isList($val) return false; } - $prevKey = 0; - /** @var array $val */ - foreach ($val as $k => $v) { - if (!\is_int($k)) { - return false; - } - - if ($k !== $prevKey) { - return false; - } - - $prevKey++; - } + $keys = array_keys($val); - return true; + return array_keys($keys) === $keys; } /**