現在の位置: ホーム> 最新記事一覧> Usort()との比較の前に配列を並べ替える

Usort()との比較の前に配列を並べ替える

M66 2025-06-06

PHPでは、 usort()array_diff_uassoc()は、一般的に使用される2つの配列処理関数です。 usort()は配列をソートするために使用されますが、 array_diff_uassoc()は2つの配列のキー値を比較して違いを返すために使用されます。これらの2つの機能を組み合わせることで、より複雑な配列操作を実現できます。

この記事では、実用的な例を使用して、 usort()を使用して配列をソートする方法を示し、次にarray_diff_uassoc()を使用して配列比較を行います。

1。USORT ()を使用して配列をソートします

まず、 USORT()の基本的な使用法を理解しましょう。 USORT()は、ユーザー定義の比較関数に従って配列をソートするために使用されます。数字の文字列を含む配列があり、数字のサイズでソートしたいとします。

 <?php
// 数字で配列を定義します
$array = [
    'apple' => '10',
    'banana' => '2',
    'cherry' => '5',
    'date' => '1',
];

// カスタム比較関数,数字のサイズでソートするために使用されます
function compare_numbers($a, $b) {
    return $a - $b;
}

// 使用 usort() 配列値をソートします
usort($array, 'compare_numbers');

// ソート付き配列を印刷します
print_r($array);
?>

出力:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 10
)

この例では、 USORT()はカスタムCompare_Numbers()関数を使用して、配列の数値をソートします。

2。配列比較には、 array_diff_uassoc()を使用します

array_diff_uassoc()は、2つの配列のキー値を比較するために使用され、最初の配列に存在するが2番目の配列には存在しない要素を返します。 array_diff_assoc()とは異なり、 array_diff_uassoc()を使用すると、カスタムキー値の比較関数を使用できます。

2つの配列があり、キー値の違いを比較したいとします。 array_diff_uassoc()を使用してこの関数を実装できます。

 <?php
// 2つの配列を定義します
$array1 = [
    'apple' => 10,
    'banana' => 2,
    'cherry' => 5,
    'date' => 1,
];

$array2 = [
    'apple' => 10,
    'banana' => 3,
    'cherry' => 5,
    'date' => 0,
];

// カスタム比較関数,キー値を比較するために使用されます
function compare_keys($a, $b) {
    return strcmp($a, $b);
}

// 使用 array_diff_uassoc() 配列のキー値を比較します
$result = array_diff_uassoc($array1, $array2, 'compare_keys');

// 結果を印刷します
print_r($result);
?>

出力:

 Array
(
    [banana] => 2
    [date] => 1
)

この例では、 array_diff_uassoc()は、 array1array2のキー値の違いを比較します。バナナ日付は2つの配列に異なるキー値を持っているため、それらは返されます。

3。usort ()array_diff_uassoc()を組み合わせます

USORT()array_diff_uassoc()を組み合わせて、最初にusort()を使用してarrayをソートし、次にarray_diff_uassoc()と比較して、ソートされた配列間の違いを取得できます。

最初に配列を並べ替えてから、2つのソートされた配列を比較してください。

 <?php
// 2つの配列を定義します
$array1 = [
    'apple' => 10,
    'banana' => 2,
    'cherry' => 5,
    'date' => 1,
];

$array2 = [
    'apple' => 10,
    'banana' => 3,
    'cherry' => 5,
    'date' => 0,
];

// カスタム比較関数,数字のサイズでソートするために使用されます
function compare_numbers($a, $b) {
    return $a - $b;
}

// コンビネーション配列1と配列2値を並べ替えます
usort($array1, 'compare_numbers');
usort($array2, 'compare_numbers');

// カスタム比較関数,キー値を比較するために使用されます
function compare_keys($a, $b) {
    return strcmp($a, $b);
}

// 使用 array_diff_uassoc() ソートされた配列を比較します
$result = array_diff_uassoc($array1, $array2, 'compare_keys');

// 結果を印刷します
print_r($result);
?>

出力:

 Array
(
    [banana] => 2
    [date] => 1
)

この例では、最初にusort()を使用して配列の値を並べ替えてから、 array_diff_uassoc()を使用してソートされた配列を比較してキー値の違いを確認します。

結論は

usort()array_diff_uassoc()を組み合わせることにより、配列を並べ替えて違いを比較できます。このアプローチは、ソートする必要があるアレイを処理し、キー値と比較するのに非常に役立ちます。 usort()を使用すると、特定のルールで配列をソートできますが、 array_diff_uassoc()を使用すると、2つの配列間のキー価値の違いを簡単に見つけることができます。