LoginSignup
9
4

More than 5 years have passed since last update.

PHP: アルファベットの文字リストをプログラム的に生成する方法

Posted at

PHPでアルファベットのAからZまでの文字のリスト(配列)をべた書きしたくないときなどに使える、アルファベットをプログラム的に生成する方法です。

やり方はシンプルにrange関数にAZを渡します。

大文字のリストを生成する方法

<?php

assert(
    [
        'A', 'B', 'C', 'D', 'E', 'F',
        'G', 'H', 'I', 'J', 'K', 'L',
        'M', 'N', 'O', 'P', 'Q', 'R', 
        'S', 'T', 'U', 'V', 'W', 'X',
        'Y', 'Z',
    ] === range('A', 'Z')
);

小文字のリストを生成する方法

assert(
    [
        'a', 'b', 'c', 'd', 'e', 'f',
        'g', 'h', 'i', 'j', 'k', 'l',
        'm', 'n', 'o', 'p', 'q', 'r',
        's', 't', 'u', 'v', 'w', 'x',
        'y', 'z',
    ] === range('a', 'z')
);

大文字と小文字のリストを生成する方法

assert(
    [
        'A', 'B', 'C', 'D', 'E', 'F',
        'G', 'H', 'I', 'J', 'K', 'L',
        'M', 'N', 'O', 'P', 'Q', 'R', 
        'S', 'T', 'U', 'V', 'W', 'X',
        'Y', 'Z',
        'a', 'b', 'c', 'd', 'e', 'f',
        'g', 'h', 'i', 'j', 'k', 'l',
        'm', 'n', 'o', 'p', 'q', 'r',
        's', 't', 'u', 'v', 'w', 'x',
        'y', 'z',
    ] === array_merge(range('A', 'Z'), range('a', 'z'))
);

ちなみにrange('A', 'z')はうまいくいきません

大文字と小文字のアルファベットを取得したいときにrange('A', 'z')のようにしたいところですが、'Z''a'の間に'[', '\\', ']', '^', '_', '`'が入るためうまいくいきません。

assert(
    [
        'A', 'B', 'C', 'D', 'E', 'F',
        'G', 'H', 'I', 'J', 'K', 'L',
        'M', 'N', 'O', 'P', 'Q', 'R', 
        'S', 'T', 'U', 'V', 'W', 'X',
        'Y', 'Z',
        '[', '\\', ']', '^', '_', '`', // これ
        'a', 'b', 'c', 'd', 'e', 'f',
        'g', 'h', 'i', 'j', 'k', 'l',
        'm', 'n', 'o', 'p', 'q', 'r',
        's', 't', 'u', 'v', 'w', 'x',
        'y', 'z',
    ] === range('A', 'z')
);

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4