array('a','b','c');
array('x'=>'a','y'=>'b','z'=>'c');
array(0=>'a',1=>'b',2=>'c');
$a = array(1,3,5,"c"=>5);
var_dump( range( 0, count($a) -1 ) == array_keys( $a ) );
/**
* Tests if an array is associative or not.
*
* @param array array to check
* @return boolean
*/
public static function is_assoc(array $array)
{
// Keys of the array
$keys = array_keys($array);
// If the array keys of the keys match the keys, then the array must
// not be associative (e.g. the keys array looked like {0:0, 1:1...}).
return array_keys($keys) !== $keys;
}
array(0=>'a', 1=>'b', 'c'=> 'd', 3=>'e');
function isAssoc(&$arr = []): bool
{
$c = count($arr);
if ($c > 10) {
return !(array_key_exists(0, $arr) and array_key_exists(random_int(0, $c - 1), $arr));
} elseif ($c > 0) {
return !(range( 0, count($arr) -1 ) == array_keys( $arr ));
}
return FALSE;
}
array_is_list([]); // true
array_is_list(['apple', 2, 3]); // true
array_is_list([0 => 'apple', 'orange']); // true
// Массив начинается не с 0
array_is_list([1 => 'apple', 'orange']); // false
// Ключи массива не по порядку
array_is_list([1 => 'apple', 0 => 'orange']); // false
// Ключи массива не являются целыми числами
array_is_list([0 => 'apple', 'foo' => 'bar']); // false
// Непоследовательные ключи
array_is_list([0 => 'apple', 2 => 'bar']); // false
/**
* is_assos
*
* @param array $array
* @return string "index"|"gibrid"|"assos"
*/
function is_assos(array $array):string
{
$keys = array_keys($array);
$str = implode("", $keys);
return is_numeric($str) ? "index" : (array_sum($keys) > 0 || array_sum($keys) == 0 && key_exists('0', $array) ? "gibrid" : 'assos');
}