Checks whether given array is associative.
```php
$result = ArrayHelper::isAssoc(['a'=>'b']);
// $result will be: true
```

@param  array $a
@return boolean
330125
public static function isAssoc ($a)
		{
			foreach (array_keys($a) as $key)
				if (!is_int($key))
					return true;

			return false;
		}
949534
public static function array_remove_assoc_recursive(&$array1, $array2)
    {
        foreach ($array2 as $key => $value) {
            if (!array_key_exists($key, $array1)) {
                return $array1;
            } elseif (is_array($value)) {
                self::array_remove_assoc_recursive($array1[$key], $value);
                if (0 === count($array1[$key])) {
                    unset($array1[$key]);
                }
            } else {
                unset($array1[$key]);
            }
        }
    }
376203
public static function is_array( $possibleArray, $_ = null )
    {
        foreach ( func_get_args() as $_argument )
        {
            if ( !is_array( $_argument ) )
            {
                return false;
            }
        }

        return true;
    }
70786
public static function isAssoc(array $array): bool
    {
        if (empty($array)) {
            return false;
        }

        foreach (array_keys($array) as $key) {
            if (\is_string($key)) {
                return true;
            }
        }

        return false;
    }
871891
private function isAssoc($array) {
	$allIntegerKeys = true;
	foreach ($array as $key => $value) {
		if(!is_integer($key)) {
			$allIntegerKeys = false;
			break;
		}
	}

	return $allIntegerKeys === false;
}
1246567
public static function isAssociative($array)
	{
		if (\is_array($array))
		{
			foreach (array_keys($array) as $k => $v)
			{
				if ($k !== $v)
				{
					return true;
				}
			}
		}

		return false;
	}
926394
protected function isAssoc($o) : bool
    {
        if (is_array($o) && $o !== []) {
            return array_keys($o) !== range(0, count($o) - 1);
        }
        return false;
    }
275790
protected function __getResult($result, string $index = null, bool $assoc = null){

		if(is_bool($result)){
			return $result;
		}

		$r = parent::getResult('sqlsrv_fetch_array', [$result, ($assoc ?? true) ? SQLSRV_FETCH_ASSOC : SQLSRV_FETCH_NUMERIC], $index, $assoc);

		sqlsrv_free_stmt($result);

		return $r;
	}
1123098
protected function shuffle_assoc(&$array) {
        if (count($array) > 1) {
            // $keys needs to be an array, no need to shuffle 1 item or empty arrays, anyway
            $keys = array_keys($array);
            shuffle($keys);
            foreach($keys as $key) {
                $new[$key] = $array[$key];
            }
            $array = $new;
        }
        return true; // because this behaves like in-built shuffle(), which returns true
    }
692361
public function isArray()
    {
        return
        (
            (
                (
                    ($this->isStruct() && $this->countOwnAttributes() === 1) ||
                    (!$this->isStruct() && $this->countOwnAttributes() <= 1)
                ) &&
                mb_stripos($this->getName(), 'array') !== false
            ) ||
            (!$this->isStruct() && $this->getMetaValueFirstSet(['arraytype', 'arrayType'], false) !== false)
        );
    }
8620
protected static function isArrayObject($arr)
    {
        foreach(array_keys($arr) as $key) {
            if (!is_int($key)) {
                return true;
            }
        }

        return false;
    }
1032637
public static function isIterator($arr) {
        if (!is_array($arr)) {
            return false;
        }

        foreach (array_keys($arr) as $key) {
            if (!is_numeric($key)) {
                return false;
            }
        }

        return true;
    }
608659
public static function isList($array)
    {
        if( !is_array( $array ) )
            return false;

        // using Stripe's library as a base for this was a cluster fuck of an idea.
        // why? figure this out:
        $keys = array_keys( $array );
        foreach( array_keys( $array ) as $i )
            if( !is_numeric( $i ) )
                return false;

        return true;
    }
1243092
public static function isSequential(array $array)
    {
        $count = count($array);

        for ($i = 0; $i < $count; $i++) {
            if (!isset($array[$i]) && !array_key_exists($i, $array)) {
                return false;
            }
        }

        return true;
    }
780725
public function isAssociative(array $array)
    {
        if (empty($array)) {
            return false;
        }

        for ($iterator = count($array) - 1; $iterator; $iterator--) {
            if ( ! array_key_exists($iterator, $array)) {
                return true;
            }
        }

        return ! array_key_exists(0, $array);
    }
169309
public function isAssociative(): bool
    {
        if (count($this->bag) === 0) {
            return false;
        }

        return array_keys($this->bag) !== range(0, count($this->bag) - 1);
    }
238382
protected function isArrayValueArray($array)
    {
        if (!is_array($array)) {
            return false;
        }
        foreach ($array as $k => $v) {
            if (!is_array($v)) {
                return false;
            }
        }

        return true;
    }