PHP でカスタム比較関数を使用すると、配列を並べ替えてキー名を保持できます。これを行うには、配列とコールバック関数をパラメータとして受け取る usort() 関数を使用できます。コールバック関数は 2 つの配列要素を受け取り、並べ替え順序を示す整数 (-1、0、または 1) を返します。
カスタム比較関数を使用して配列を並べ替えるのは、配列演算の一般的な演算。 PHP では、usort()
関数を使用してこれを簡単に実現できます。
usort(array, callable)
次の例は、カスタム比較関数を使用して、キー名を保持しながら配列内のキー名を並べ替える方法を示しています。この例では、
compare 関数は 2 つのキー名 ($a['key']
と $b['key']
) をパラメータとして受け取ります。 strcmp()
関数を使用してそれらを比較します。 strcmp()
この関数は -1、0、または 1 を返し、最初の文字列が 2 番目の文字列より小さいか、等しいか、大きいかを示します。
関数が呼び出されると、指定された比較関数が $arr
配列内の各要素に適用されます。 compare
関数が -1 を返す場合、最初の要素は 2 番目の要素の前に並べ替えられます。1 を返す場合はその逆で、0 を返す場合は要素の順序は変更されません。 最終出力は次のとおりです:
<?php // 待排序的数组 $arr = [ 'a' => 10, 'c' => 5, 'b' => 20, ]; // 自定义比较函数 $compare = function ($a, $b) { return strcmp($a['key'], $b['key']); }; usort($arr, $compare); // 输出排序后的数组 print_r($arr);
配列は、キー名を保持したまま、キー名に従って小さいものから大きいものへと並べ替えられます。
以上がPHP のカスタム比較関数を使用して配列をソートし、キー名を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。