Как проверить ассоциативность массива в PHP
Сниппет
Массив является "ассоциативным", если он не имеет последовательных цифровых ключей, начинающихся с нуля.
<?php
function isAssoc(array $array){
$keys = array_keys($array);
return array_keys($keys) !== $keys;
}
//использование
var_dump(isAssoc(['test'=>'associative','1'=>'integer'])); // true
var_dump(isAssoc(['test','integer','associative'])); // false
Если ваш массив не начинается с "0" или ключи не по порядку, то вы можете проверить являются ли ключи числами:
<?php
function isAssoc($a) {
foreach(array_keys($a) as $key)
if (!is_int($key)) return true;
return false;
}
//использование
var_dump(isAssoc(['test','integer','associative'])); // false
var_dump(isAssoc([1=>'test',2=>'integer',100=>'associative'])); // false
Похожие снипеты
- Как проверить подключение к MySQL
- Обнаружение AJAX запроса
- Проверить, сериализована ли строка
- Валидация JSON
- In_array без учета регистра
- Валидация Email
- Проверить, начинается ли строка с определенных символов
- Обнаружение ботов через user agent
- Извлечь все битовые флаги
- Проверка, все ли значения в массиве равны