Проверка ассоциативного массива в PHP

Ниже представлен простой пример проверки массива на ассоциативность. Реализацию данной функции я извлек из исходного кода PHP фреймворка под названием Kohana, потому считаю, что рассмотренный здесь вариант будет наиболее оптимальным / правильным решением.

<?php
/**
 * Функция выполняет проверку массива на ассоциативность.
 * @param array $array
 * @return boolean
 */
function is_assoc(array $array) {
// Ключи массива:
    $keys = array_keys($array);

// Если массив ключей из ключей соответствует ключам, то массив должен
// быть не ассоциативным(например, ключи массива будут похожи на {0:0, 1:1 ...}).
    return array_keys($keys) !== $keys;
}

/* Пример использования 1: массив асоциативный */
$array1 = array(
    "Бумага" => "Тетрадь",
    "Фрукт" => "Апельсин",
    "Овощь" => "Морковь",
);
if (is_assoc($array1)) 
    print 'Этот массив является ассоциативным!<br />';
else
    print 'Этот массив не является ассоциативным.<br />';

/* Пример использования 2: массив не асоциативный */
$array2 = array(
    "Книга", "Апельсин", "Морковь",
);   
if (is_assoc($array2)) 
    print 'Этот массив является ассоциативным!<br />';
else
    print 'Этот массив не является ассоциативным.<br />';
?>

Как уже было описано в комментариях: в первом случае функция is_assoc() определит, что массив является ассоциативным, а во втором то, что он не является ассоциативным. Вот собственно и все.

Опубликовано 2-09-2013 в 13:22


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты