ホームページ  >  記事  >  バックエンド開発  >  PHPで配列をピンインでソートする方法

PHPで配列をピンインでソートする方法

PHPz
PHPzオリジナル
2023-04-18 09:46:56597ブラウズ

PHP プログラミングでは、配列をソートする必要があることがよくあります。通常、中国語の文字列はアルファベット順に並べられていないため、PHP では中国語の文字列をソートするときに問題が発生します。したがって、中国語の文字列を処理する場合は、文字列を変換し、中国語の文字列をピンインに変換してから、並べ替える必要があります。では、PHP はどのように配列をピンインでソートするのでしょうか?以下で詳しく紹介していきましょう。

  1. 準備:

PHP では、ピンイン拡張機能を使用して中国語の文字列をピンインに変換できます。まず、ピンイン拡張機能をインストールする必要があります。これは次のコマンドでインストールできます:

pecl install pinyin

インストールが完了したら、次の内容を php.ini ファイルに追加します:

extension=pinyin.so

次に、PHP サービスを再起動して、展開されたピンインを使用します。

  1. 配列の並べ替え:

複数の中国語の文字列を含む配列があるとします。次に、中国語文字列のピンイン順に従ってこの配列を並べ替える必要があります。 PHP が提供する usort 関数を使用できます。この関数は、ソートされた配列とソートされたコールバック関数の 2 つのパラメーターを受け入れます。

まず、コールバック関数を作成する必要があります。この関数は、比較する必要がある 2 つの要素を表す 2 つのパラメーター $a と $b を受け取ります。この関数は、$a と $b の間のサイズ関係を表す整数値を返す必要があります。 $a が $b より大きい場合は 0 より大きい整数を返し、$a が $b より小さい場合は 0 より小さい整数を返し、$a が $b に等しい場合は 0 を返します。以下に例を示します。

function cmp($a, $b)
{
    $py_a = pinyin($a); // 转换成拼音
    $py_b = pinyin($b);
    return strcmp($py_a, $py_b); // 比较拼音
}

上記のコードでは、まず pinyin 関数を使用して中国語の文字列をピンインに変換し、次に strcmp 関数を使用してピンインの大小関係を比較します。

次に、以下に示すように、usort 関数を使用して配列を並べ替えます。

$array = array("张三", "李四", "王五", "赵六");
usort($array, "cmp"); // 按拼音排序
print_r($array); // 输出结果

上記のコードでは、まず、いくつかの中国語の文字列を含む配列 $array を定義します。配列をソートするための usort 関数。ソート コールバック関数は、上で定義した cmp 関数です。最後に、print_r 関数を使用して、並べ替えられた結果を出力します。

  1. 概要

中国語の文字列をピンインに変換することで、配列を簡単に並べ替えることができます。 PHP には中国語の文字列をピンインに変換するためのピンイン拡張機能が用意されており、コールバック関数と usort 関数を組み合わせて使用​​することで、配列をピンインに従ってソートできます。これは、PHP プログラム開発において非常に実用的な価値があります。

以上がPHPで配列をピンインでソートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。