【问题标题】:Way to get all alphabetic chars in an array in PHP?在PHP中获取数组中所有字母字符的方法?
【发布时间】:2009-01-10 22:52:38
【问题描述】:

有没有办法在 PHP 的数组中获取所有字母字符 (A-Z),以便我可以遍历它们并显示它们?

【问题讨论】:

    标签: php


    【解决方案1】:
    $alphas = range('A', 'Z');
    

    文档:https://www.php.net/manual/en/function.range.php

    【讨论】:

    • 我喜欢这个答案。感谢您向我介绍range() 功能!
    • 这似乎不适用于 Unicode 字符。但否则很好。我不知道是否可以将字符转换为整数,然后反过来绕过这个问题......
    • 这与 OP 询问的问题不同。值得自己提出问题,IMO。
    【解决方案2】:

    要同时获得大写和小写合并两个范围:

    $alphas = array_merge(range('A', 'Z'), range('a', 'z'));
    

    【讨论】:

    • 也可以array_combine(range('A', 'Z'), range('a', 'z')) 工作
    • 你如何获得拉丁词?
    【解决方案3】:
    $alphabet = array('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() 会变慢时很好。
    【解决方案4】:

    另一种方式:

    $c = 'A';
    $chars = array($c);
    while ($c < 'Z') $chars[] = ++$c;
    

    【讨论】:

      【解决方案5】:

      PHP 已经为此类应用程序提供了一个函数。
      chr(x) 返回整数索引为 x 的 ascii 字符。
      在某些情况下,这种方法应该被证明是最直观的。
      参考http://www.asciitable.com/

      $UPPERCASE_LETTERS = range(chr(65),chr(90));
      $LOWERCASE_LETTERS = range(chr(97),chr(122));
      $NUMBERS_ZERO_THROUGH_NINE = range(chr(48),chr(57));
      
      $ALPHA_NUMERIC_CHARS = array_merge($UPPERCASE_LETTERS, $LOWERCASE_LETTERS, $NUMBERS_ZERO_THROUGH_NINE); 
      

      【讨论】:

        【解决方案6】:
        <?php 
        
        $array = Array();
        for( $i = 65; $i < 91; $i++){
                $array[] = chr($i);
        }
        
        foreach( $array as $k => $v){
                echo "$k $v \n";
        }
        
        ?>
        
        $ php loop.php 
        0 A 
        1 B 
        2 C 
        3 D 
        4 E 
        5 F 
        6 G 
        7 H
        ...
        

        【讨论】:

        • 你可以做 $array[] = chr($i) 来追加一个元素
        • 这基本上就是range 所做的,但这是一种更广泛的做法。
        • 您可能已经使用 JavaScript 一段时间了,因为 Array() 确实应该是 array()。或者,在 JS 中,[] :)
        【解决方案7】:

        A-Z 的范围,但如果你想从 A 到 DU,那么:

         function generateAlphabet($na) {
                $sa = "";
                while ($na >= 0) {
                    $sa = chr($na % 26 + 65) . $sa;
                    $na = floor($na / 26) - 1;
                }
                return $sa;
            }
        
            $alphabet = Array();
            for ($na = 0; $na < 125; $na++) {
                $alphabet[]=generateAlphabet($na);
            }
        
            print_r($alphabet);
        

        您的答案将如下所示:

        Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => O [15] => P [16] => Q [17] => R [18] => S [19] => T [20] => U [21] => V [22] => W [23] => X [24] => Y [25] => Z [26] => AA [27] => AB [28] => AC [29] => AD [30] => AE [31] => AF [32] => AG [33] => AH [34] => AI [35] => AJ [36] => AK [37] => AL [38] => AM [39] => AN [40] => AO [41] => AP [42] => AQ [43] => AR [44] => AS [45] => AT [46] => AU [47] => AV [48] => AW [49] => AX [50] => AY [51] => AZ [52] => BA [53] => BB [54] => BC [55] => BD [56] => BE [57] => BF [58] => BG [59] => BH [60] => BI [61] => BJ [62] => BK [63] => BL [64] => BM [65] => BN [66] => BO [67] => BP [68] => BQ [69] => BR [70] => BS [71] => BT [72] => BU [73] => BV [74] => BW [75] => BX [76] => BY [77] => BZ [78] => CA [79] => CB [80] => CC [81] => CD [82] => CE [83] => CF [84] => CG [85] => CH [86] => CI [87] => CJ [88] => CK [89] => CL [90] => CM [91] => CN [92] => CO [93] => CP [94] => CQ [95] => CR [96] => CS [97] => CT [98] => CU [99] => CV [100] => CW [101] => CX [102] => CY [103] => CZ [104] => DA [105] => DB [106] => DC [107] => DD [108] => DE [109] => DF [110] => DG [111] => DH [112] => DI [113] => DJ [114] => DK [115] => DL [116] => DM [117] => DN [118] => DO [119] => DP [120] => DQ [121] => DR [122] => DS [123] => DT [124] => DU ) 
        

        【讨论】:

          【解决方案8】:
          $array = range('a', 'z');
          

          【讨论】:

            【解决方案9】:

            如果您需要一个包含字母键和元素的数组(例如,对于字母下拉列表),您可以这样做:

            $alphas = array_combine(range('A','Z'),range('A','Z'))
            

            产量:

            array (size=26)
              'A' => string 'A' (length=1)
              'B' => string 'B' (length=1)
              'C' => string 'C' (length=1)
              'D' => string 'D' (length=1)
              ...etc
            

            【讨论】:

              【解决方案10】:

              所有好的答案,如果有人正在寻找一组大小写字母,这里是:

              $alpha = array('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'))
              • 我喜欢这个答案,因为我可以将我们的字母表添加到该数组中
              【解决方案11】:

              也许这有点离题(主题开始者要求仅针对 A-Z 的解决方案),但对于西里尔字符的解决方案是:

              // to place letters into the array
              $alphas = array();
              foreach (range(chr(0xC0), chr(0xDF)) as $b) {
                  $alphas[] = iconv('CP1251', 'UTF-8', $b);
              }    
              
              // or conver array into comma-separated string
              $alphas = array_reduce($alphas, function($p, $n) {
                return $p . '\'' . $n . '\',';
              });
              $alphas = rtrim($alphas, ',');
              
              // echo string for testing
              echo $alphas;
              // or echo mb_strtolower($alphas); for lowercase letters
              

              【讨论】:

                【解决方案12】:
                $alphabets = range('A', 'Z');
                    $doubleAlphabets = array();
                    $count = 0;
                    foreach($alphabets as $key => $alphabet)
                    {
                        $count++;
                        $letter = $alphabet;
                        while ($letter <= 'Z') 
                        {
                            $doubleAlphabets[] = $letter;
                
                            ++$letter;
                        }
                    }
                
                    return $doubleAlphabets;
                

                【讨论】:

                • 你能解释一下你的答案吗?
                • 这列出了所有的两个字母组合,为什么?
                【解决方案13】:

                试试这个:

                function missingCharacter($list) {
                
                        // Create an array with a range from array minimum to maximu
                        $newArray = range(min($list), max($list));
                
                        // Find those elements that are present in the $newArray but not in given $list
                        return array_diff($newArray, $list);
                    }
                print_r(missCharacter(array('a','b','d','g')));
                

                【讨论】:

                  【解决方案14】:

                  昨天,PEZ 在这篇文章中的回答 https://stackoverflow.com/a/431930/9710921 帮助我创建了一个数组来管理 Excel 列 以进行数据导出,如下所示:

                  public static function makeAlphas() : array {
                      $alphas = $cells = range('A', 'Z');
                      foreach($alphas as $alpha) {
                          foreach($alphas as $beta) {
                              $cells[] = $alpha.$beta;
                          }
                      }
                      return $cells;
                  }
                  
                  // Output
                  // array:702 ["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" "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ", "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CJ", "CK", "CL", "CM", "CN", "CO", "CP", "CQ", "CR", "CS", "CT", "CU", "CV", "CW", "CX", "CY", "CZ", "DA", "DB", "DC", "DD", "DE", "DF", "DG", "DH", "DI", "DJ", "DK", "DL", "DM", "DN", "DO", "DP", "DQ", "DR", "DS", "DT", "DU", "DV", "DW", "DX", "DY", "DZ", "EA", "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EI", "EJ", "EK", "EL", "EM", "EN", "EO", "EP", "EQ", "ER", "ES", "ET", "EU", "EV", "EW", "EX", "EY", "EZ", "FA", "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FI", "FJ", "FK", "FL", "FM", "FN", "FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV", "FW", "FX", "FY", "FZ", "GA", "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GI", "GJ", "GK", "GL", "GM", "GN", "GO", "GP", "GQ", "GR", "GS", "GT", "GU", "GV", "GW", "GX", "GY", "GZ", "HA", "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HI", "HJ", "HK", "HL", "HM", "HN", "HO", "HP", "HQ", "HR", "HS", "HT", "HU", "HV", "HW", "HX", "HY", "HZ", "IA", "IB", "IC", "ID", "IE", "IF", "IG", "IH", "II", "IJ", "IK", "IL", "IM", "IN", "IO", "IP", "IQ", "IR", "IS", "IT", "IU", "IV", "IW", "IX", "IY", "IZ", "JA", "JB", "JC", "JD", "JE", "JF", "JG", "JH", "JI", "JJ", "JK", "JL", "JM", "JN", "JO", "JP", "JQ", "JR", "JS", "JT", "JU", "JV", "JW", "JX", "JY", "JZ", "KA", "KB", "KC", "KD", "KE", "KF", "KG", "KH", "KI", "KJ", "KK", "KL", "KM", "KN", "KO", "KP", "KQ", "KR", "KS", "KT", "KU", "KV", "KW", "KX", "KY", "KZ", "LA", "LB", "LC", "LD", "LE", "LF", "LG", "LH", "LI", "LJ", "LK", "LL", "LM", "LN", "LO", "LP", "LQ", "LR", "LS", "LT", "LU", "LV", "LW", "LX", "LY", "LZ", "MA", "MB", "MC", "MD", "ME", "MF", "MG", "MH", "MI", "MJ", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NB", "NC", "ND", "NE", "NF", "NG", "NH", "NI", "NJ", "NK", "NL", "NM", "NN", "NO", "NP", "NQ", "NR", "NS", "NT", "NU", "NV", "NW", "NX", "NY", "NZ", "OA", "OB", "OC", "OD", "OE", "OF", "OG", "OH", "OI", "OJ", "OK", "OL", "OM", "ON", "OO", "OP", "OQ", "OR", "OS", "OT", "OU", "OV", "OW", "OX", "OY", "OZ", "PA", "PB", "PC", "PD", "PE", "PF", "PG", "PH", "PI", "PJ", "PK", "PL", "PM", "PN", "PO", "PP", "PQ", "PR", "PS", "PT", "PU", "PV", "PW", "PX", "PY", "PZ", "QA", "QB", "QC", "QD", "QE", "QF", "QG", "QH", "QI", "QJ", "QK", "QL", "QM", "QN", "QO", "QP", "QQ", "QR", "QS", "QT", "QU", "QV", "QW", "QX", "QY", "QZ", "RA", "RB", "RC", "RD", "RE", "RF", "RG", "RH", "RI", "RJ", "RK", "RL", "RM", "RN", "RO", "RP", "RQ", "RR", "RS", "RT", "RU", "RV", "RW", "RX", "RY", "RZ", "SA", "SB", "SC", "SD", "SE", "SF", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SP", "SQ", "SR", "SS", "ST", "SU", "SV", "SW", "SX", "SY", "SZ", "TA", "TB", "TC", "TD", "TE", "TF", "TG", "TH", "TI", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TQ", "TR", "TS", "TT", "TU", "TV", "TW", "TX", "TY", "TZ", "UA", "UB", "UC", "UD", "UE", "UF", "UG", "UH", "UI", "UJ", "UK", "UL", "UM", "UN", "UO", "UP", "UQ", "UR", "US", "UT", "UU", "UV", "UW", "UX", "UY", "UZ", "VA", "VB", "VC", "VD", "VE", "VF", "VG", "VH", "VI", "VJ", "VK", "VL", "VM", "VN", "VO", "VP", "VQ", "VR", "VS", "VT", "VU", "VV", "VW", "VX", "VY", "VZ", "WA", "WB", "WC", "WD", "WE", "WF", "WG", "WH", "WI", "WJ", "WK", "WL", "WM", "WN", "WO", "WP", "WQ", "WR", "WS", "WT", "WU", "WV", "WW", "WX", "WY", "WZ", "XA", "XB", "XC", "XD", "XE", "XF", "XG", "XH", "XI", "XJ", "XK", "XL", "XM", "XN", "XO", "XP", "XQ", "XR", "XS", "XT", "XU", "XV", "XW", "XX", "XY", "XZ", "YA", "YB", "YC", "YD", "YE", "YF", "YG", "YH", "YI", "YJ", "YK", "YL", "YM", "YN", "YO", "YP", "YQ", "YR", "YS", "YT", "YU", "YV", "YW", "YX", "YY", "YZ", "ZA", "ZB", "ZC", "ZD", "ZE", "ZF", "ZG", "ZH", "ZI", "ZJ", "ZK", "ZL", "ZM", "ZN", "ZO", "ZP", "ZQ", "ZR", "ZS", "ZT", "ZU", "ZV", "ZW", "ZX", "ZY", "ZZ",];
                  

                  谢谢佩兹!

                  【讨论】:

                    【解决方案15】:

                    小写字母

                    for ($x = 97; $x < 122; $x++) {
                        $y = chr($x);
                        echo $y;
                        echo "<br>";
                    }
                    

                    大写字母

                    for ($x = 65; $x < 90; $x++) {
                        $y = chr($x);
                        echo $y;
                        echo "<br>";
                    }
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-02-10
                      • 2014-12-08
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多