0
78
2018-01-24

Как проверить, существует ли несколько ключей массива, PHP

Автору нужно было проверить ассоциативный массив, чтобы увидеть, содержит ли он определенный набор ключей. И из этого родилась годная php функция.
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

Вот что необходимо было сделать:

if( isset( $data['sanitize'], $data['validate'], $data['authorize'] ) ) {
    // Делай вещи с моими данными
}

Конечно, это не так уж много кода, но такой синтаксис просто сводит меня с ума. Итак, я подумал, что было бы неплохо сделать что-то вроде этого:

if( array_keys_exist( $data, 'sanitize', 'validate', 'authorize' ) ) {
     // Делай вещи с моими данными
}

Это проигрывает хорошо известную функцию в PHP, но добавляет возможность проверять, существует ли несколько ключей, и улучшает читабельность кода. array_key_exists(). Несколько мгновений спустя я собрал симпатичную небольшую служебную функцию, которая делает именно это:

/**
 * Проверяет, существует ли несколько ключей в массиве
 *
 * @param array $array
 * @param array|string $keys
 *
 * @return bool
 */
function array_keys_exist( array $array, $keys ) {
    $count = 0;
    if ( ! is_array( $keys ) ) {
        $keys = func_get_args();
        array_shift( $keys );
    }
    foreach ( $keys as $key ) {
        if ( isset( $array[$key] ) || array_key_exists( $key, $array ) ) {
            $count ++;
        }
    }

    return count( $keys ) === $count;
}

Наслаждайтесь!




Статья была переведена для блога TechBlog.SDStudio.top

Источник: wpscholar.com