ホームページ > バックエンド開発 > PHPの問題 > PHP 中国語と英語の文字列を配列に変換

PHP 中国語と英語の文字列を配列に変換

王林
リリース: 2023-05-19 19:13:05
オリジナル
628 人が閲覧しました

PHP では、文字列を配列に変換する必要がある場合があります。文字列に英語の単語や中国語の文字が含まれている場合、文字列を配列要素に分割する必要がある場合があります。ここでは、中国語と英語の文字列を配列に変換する方法を詳しく紹介します。

まず、PHP で文字列を配列要素に分割する方法を見てみましょう。これは、PHP のexplode() 関数を使用して実現できます。

$str = "Hello World";
$arr = explode(" ", $str);
print_r($arr);
ログイン後にコピー

このプログラムの出力結果は次のとおりです。

Array
(
    [0] => Hello
    [1] => World
)
ログイン後にコピー

上記のプログラムでは、文字列を分割するための区切り文字としてスペースが使用されています。配列要素に取り込みます。このうち、explode()関数の第一引数は区切り文字を指定し、第二引数は分割する文字列変数です。

次に、中国語と英語が混在した文字列を配列に変換する方法を考えます。ここでは、PHP 正規表現を使用して文字列を分割する必要があります。中国語と英語が混在した文を例に挙げると、次のプログラムを使用して文字列を配列に変換できます。

$str = "Hello,世界";
preg_match_all("/./u", $str, $matches);
print_r($matches[0]);
ログイン後にコピー

上記のプログラムの出力は次のとおりです。

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] => ,
    [6] => 世
    [7] => 界
)
ログイン後にコピー

ここでは、 preg_match_all() 関数を使用して、正規表現に基づいて文字列を配列に分割します。このうち、正規表現「/./u」はすべての文字 (中国語を含む) と一致することを意味し、u は UTF-8 エンコーディングで解析することを意味し、中国語の文字が正しく処理されることを保証します。

上記のプログラムでは、preg_match_all() 関数を使用して文字列を配列要素に分割していますが、文字列中に漢字が含まれている場合は、通常通り文字ごとに分割されます。出力結果から、プログラムがすべての分散文字を配列変数 $matches[0] に格納していることがわかります。

文字列内の英語と中国語の文字を異なる配列要素に別々に格納したい場合は、次のプログラムを使用できます:

$str = "Hello,世界";
preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches);
print_r($matches[0]);
ログイン後にコピー

このプログラムの出力は次のとおりです:

Array
(
    [0] => Hello
    [1] => 世界
)
ログイン後にコピー

上記のプログラムでは、正規表現 "/[x{4e00}-x{9fa5}] |[A-Za-z] /u" が使用されています。ここで、[x{ 4e00} -x{9fa5}] は中国語の文字と一致することを意味し、[A-Za-z] は英語の文字と一致することを意味します。

中国語の文字をピンインに変換する必要があり、ピンインも配列要素として保存されている場合は、次のプログラムを使用できます:

$str = "你好,世界";
preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches);
for($i=0; $i<count($matches[0]); $i++){
    $str = $matches[0][$i];
    if (preg_match("/[x{4e00}-x{9fa5}]/u", $str)) {
        $pinyin = PinYin($str);
        $arr[] = $pinyin[0];
    } else {
        $arr[] = $str;
    }
}
print_r($arr);
ログイン後にコピー

このプログラムの実行結果は次のとおりです。 :

Array
(
    [0] => ni
    [1] => hao
    [2] => shi
    [3] => jie
)
ログイン後にコピー

上記のプログラムでは、中国語の文字をピンインに変換するために使用される関数 Pinying() をカプセル化しています。プログラムでは、文字列に中国語の文字が含まれている限り、この関数が呼び出され、中国語の文字がピンインに変換され、配列変数 $arr に格納されます。

この時点で、中国語と英語の文字列を配列に変換することに成功しました。文字処理やテキスト分析を実行する必要がある場合、文字列を配列に変換することは、よく使用される PHP 関数の 1 つになります。

以上がPHP 中国語と英語の文字列を配列に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート