<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

В начале курса у нас будет только идея, а в конце готовый продукт, который можно использовать в практических целях.

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как проверить является ли массив списком или хеш-таблицей?

Как проверить является ли массив списком или хеш-таблицей?

Массивы в PHP - многолики. Они могут быть как списками так и хеш-таблицами. Так как же определить когда массив в PHP - список, а когда хеш-таблица?

Для начала определимся с терминологией. Списком будем называть массив, содержащий значения, ключи у которых последовательно идут один за другим, начинаясь с 0. Значения списка могу состоять как из простых типов, так и из других списков. Вот примеры массивов - списков:

$list1 = ['a', 'b', 'c', 'd'];

$list2 = [
    0 => 'my',
    1 => 'ru',
    2 => ['sa' => 'kov']
];

Хеш-таблицей будем считать массив, который:

  1. Содержит один или более не числовых ключей;
  2. Ключи непоследовательны или не начинаются с нуля.

Примеры массивов - хеш-таблиц в PHP:

$hash1 = [
    'my' => 1,
    'rus' => true
];

$hash2 = [
    2012  => 'HTML Basics',
    2014  => 'PHP Guru',
    2016  => 'React'
];

$hash3 = [
    'string',
    'options' => [ 'debug' => false ]
];

А вот непосредственно сами функции, с помощью, которых мы будем проверять массивы:

function array_is_list(array $value)
{
    // если $value не массив возвращаем ложь
    if (!is_array($value)) return false;

    // если массив пустой возвращаем ложь
    if (!$value) return false;

    // сравниваем значения массива и массив
    // в случае списка это будет одно и тоже
    return (array_values($value) === $value);
}



function array_is_hash_table(array $value)
{
    // если $value не массив возвращаем ложь
    if (!is_array($value)) return false;

    // если массив пустой возвращаем ложь
    if (!$value) return false;

    // сравниваем значения массива и массив
    // в случае хеш-таблицы это будут разные значения
    return (array_values($value) !== $value);
}

Функции для тестирования:

function test_list(array $array) {
    print sprintf("Является ли массив %s списком? - %s\n",
          // "[" . join(",",$array) . "]",
          print_r( $array, 1),
          array_is_list($array) ? "Да" : "Нет");
}

function test_hash_table(array $array) {
    print sprintf("Является ли массив %s хеш-таблицей - %s\n",
          // "[" . join(",",$array) . "]",
          print_r( $array, 1),
          array_is_hash_table($array) ? "Да" : "Нет");
}


test_list($list1);
test_list($list2);

print(PHP_EOL);

test_hash_table($hash1);
test_hash_table($hash2);
test_hash_table($hash3);
test_hash_table($list1);

Результат:

Является ли массив Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)
 списком? - Да
 
Является ли массив Array
(
    [0] => my
    [1] => ru
    [2] => Array
        (
            [sa] => kov
        )

)
 списком? - Да
 

Является ли массив Array
(
    [my] => 1
    [rus] => 1
)
 хеш-таблицей - Да
 
Является ли массив Array
(
    [2012] => HTML Basics
    [2014] => PHP Guru
    [2016] => React
)
 хеш-таблицей - Да
 
Является ли массив Array
(
    [0] => string
    [options] => Array
        (
            [debug] => 1
        )

)
 хеш-таблицей - Да
 
Является ли массив Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)
 хеш-таблицей - Нет

Вот так можно проверить, является ли массив списком или хеш-таблицей.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.