0

単語を数字の配列に変換する関数を書きました。フェ

$alphas = range('a', 'z');
function dig_to_string($string) {
     global $alphas;
     $array = str_split($string);
     foreach($array as $a) {
         $digits[] = array_search($a,$alphas);
     }
     return $digits;
}
$word = 'color';
$array = dig_to_string($word);
// Array ( [0] => 2 [1] => 14 [2] => 11 [3] => 14 [4] => 17 )
// Because 'c' is the second alphabet's letter, 'o' is 14th and so on.
// Means 'a' has 0-index

それを最適化する方法はありますか?

4

4 に答える 4

2

単純にord()を使用できます

function string_to_digits($string) {
    $start=ord('a');
    $length=strlen($string);
    for($i=0;$i<$length;$i++)
    {
        $digits[]=ord($string[$i])-$start;  
              // $digits[]=ord($string[$i]);   //If you want ASCII code to be returned

    }
    return $digits;
}
于 2013-05-29T05:47:07.230 に答える
1

多分これは少し良いです。私はそれをテストしませんでしたが、うまくいくはずです;-)

function dig_to_string($string)
{
    $len = strlen($string);
    $digits = array();
    for($i=0;$i<$len;$i++){
        $digits[$i] = ord($string[$i])-97; //97 = ASCII for 'a'
    }
    return $digits;
}
于 2013-05-29T05:47:31.867 に答える