Проверка ассоциативного массива в 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
PHP


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

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

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

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

  • Администратор: к записи Не знаю, с ходу не скажу. »
  • Андрей: к записи Сорри, лишнее TD »
  • Андрей: к записи У вас лишнее в 71 строке. За быстрый урок спасибо »
  • Михаил: к записи Здравствуйте. Спасибо помогло! А не скажите как не »
  • Олег: к записи Добрый день! Да пагинация в таком ключе действите »
  • Радик: к записи Помогите, не получается спарсить. Вот тут #ire »
  • Администратор: к записи Когда меняете пароль к базе в панели управления хо »

Статистика спама

Blogroll:

  • Реклама на станциях метро: реклама в метро киев . →

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