ホームページ > バックエンド開発 > PHPの問題 > PHPで配列をソートする方法は何ですか

PHPで配列をソートする方法は何ですか

PHPz
リリース: 2023-04-20 14:24:44
オリジナル
3494 人が閲覧しました

PHP において、配列は一連のデータを格納でき、操作も簡単な非常に重要なデータ型です。配列をソートする必要がある場合、PHP には多くの組み込み関数とメソッドが用意されています。

この記事では、主に次のような、PHP で一般的に使用される配列の並べ替えメソッドを紹介します。

  1. array_sort() 関数
  2. sort() 関数
  3. asort() 関数
  4. ksort() 関数
  5. usort() 関数
  6. uasort() 関数
  7. uksort() 関数
  8. natsort() 関数
  9. arsort() 関数
  10. rsort() 関数
  11. array_sort() 関数

array_sort() 関数これは、配列の並べ替えに使用できる PHP のカスタム関数です。この関数を呼び出すときは、2 つのパラメータを渡す必要があります。最初のパラメータは並べ替える配列で、2 番目のパラメータは並べ替え方法です。SORT_ASC と SORT_DESC を使用できます。

次は、array_sort() 関数を使用して配列を並べ替える例です。

function array_sort($arr,$keys,$type=SORT_ASC){
    $keysvalue = array();
    foreach($arr as $key=>$val){
        $keysvalue[$key] = $val[$keys];
    }
    if($type == SORT_ASC){
        asort($keysvalue);
    }else{
        arsort($keysvalue);
    }
    reset($keysvalue);
    foreach($keysvalue as $key=>$vals) {
        $keysort[$key] = $key;
    }
    $new_array = array();
    foreach($keysort as $key=>$val) {
        $new_array[$val] = $arr[$val];
    }
    return $new_array;
}
ログイン後にコピー

使用方法:

$arr = array(

array('id'=>1,'name'=>'Tom','age'=>20),
array('id'=>2,'name'=>'Jerry','age'=>18),
array('id'=>3,'name'=>'Lucy','age'=>22)
ログイン後にコピー

) ;
$arr = array_sort($arr,'age',SORT_DESC);
print_r($arr);

出力結果:

Array
(

[0] => Array
    (
        [id] => 3
        [name] => Lucy
        [age] => 22
    )

[1] => Array
    (
        [id] => 1
        [name] => Tom
        [age] => 20
    )

[2] => Array
    (
        [id] => 2
        [name] => Jerry
        [age] => 18
    )
ログイン後にコピー

)

  1. sort() 関数

sort() 関数は、PHP でよく使用される並べ替え関数の 1 つです。主に配列のソートに使用されます。昇順または降順で並べ替えることも、配列のインデックス関係を変更しないままにすることもできます。

次は、sort() 関数を使用して配列を並べ替える例です。

$arr = array(3,1,4,2,5);
sort($arr );
print_r($arr);

出力結果:

Array
(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
ログイン後にコピー

)

    #asort( )Function
asort() 関数は配列をソートするメソッドで、昇順または降順でソートできますが、配列のインデックス関係は変わりません。 asort() 関数を使用すると、その値に基づいて配列が並べ替えられます。

次は、asort() 関数を使用して配列を並べ替える例です。

$arr = array(3,1,4,2,5);

asort($arr );
print_r($arr);

出力結果:

Array

(

[1] => 1
[3] => 2
[0] => 3
[2] => 4
[4] => 5
ログイン後にコピー
)

#ksort( )Function
  1. ksort() 関数は、配列をソートするメソッドです。昇順または降順でソートできますが、配列のキーと値は維持されます。二人の関係は変わらない。

以下は、ksort() 関数を使用して配列を並べ替える例です。

$arr = array('d'=>'Dog','a'= >'リンゴ ','c'=>'猫','b'=>'男の子');

ksort($arr);

print_r($arr);

出力結果:

Array

(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

)

usort()関数
  1. usort()関数は配列をソートする 他のソート関数とは異なるメソッドである usort() 関数を使用すると、ソート アルゴリズムをカスタマイズできます。 usort() 関数を使用する場合、希望の基準 (文字列に含まれる文字数や数値のサイズなど) に基づいて配列の値を比較する比較関数を指定できます。

以下は、usort() 関数を使用して配列を並べ替える例です。

function cmp($a, $b)

{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

}

$arr = array(3,1,4,2,5);

usort($arr, "cmp");
print_r($arr);

出力結果:

Array

(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
ログイン後にコピー

)

uasort() function
  1. uasort() 関数は並べ替えですPHP 関数では、usort() 関数に似ており、並べ替えアルゴリズムをカスタマイズできます。ただし、usort() 関数とは異なり、配列のキー値は変更されません。

次は、uasort() 関数を使用して配列を並べ替える例です。

function cmp($a, $b)

{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

}

$arr = array('d'=>'犬','a'=>'リンゴ','c'=>'猫','b'=>'男の子') ;

uasort($arr, "cmp");
print_r($arr);

出力結果:

Array

(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

)

uksort() 関数
  1. uksort() 関数は、PHP のソート関数です。ksort() 関数に似ており、昇順または昇順でソートすることもできます。降順。 。ただし、ksort() 関数とは異なり、並べ替えアルゴリズムをカスタマイズでき、キーと値の関係を変更しないで維持できます。

次は、uksort() 関数を使用して配列を並べ替える例です。

function cmp($a, $b)

{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

}

$arr = array('d'=>'犬','a'=>'リンゴ','c'=>'猫','b'=>'男の子') ;

uksort($arr, "cmp");
print_r($arr);

出力結果:

Array

(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

)

natsort() 関数
  1. natsort() 関数は、PHP のソート関数です。自然数に従って配列をソートします。これは人間の仕様に準拠していない可能性があります。文字列内の数値を比較するため、直感的です。

次は、natsort() 関数を使用して配列を並べ替える例です。

$arr = array('img12.png', 'img10.png', 'img2 .png', 'img1.png');

natsort($arr);

print_r($arr);

出力結果:

Array

(

[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
ログイン後にコピー

)

  1. arsort()函数

arsort()函数是PHP中的一种排序函数,它可以按照降序方式将数组中的元素进行排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用arsort()函数对数组进行排序的例子:

$arr = array(3,1,4,2,5);
arsort($arr);
print_r($arr);

输出结果:

Array
(

[4] => 5
[2] => 4
[0] => 3
[1] => 1
[3] => 2
ログイン後にコピー

)

  1. rsort()函数

rsort()函数是PHP中常用的排序函数之一,它可以按照降序的方式来排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用rsort()函数对数组进行排序的例子:

$arr = array(3,1,4,2,5);
rsort($arr);
print_r($arr);

输出结果:

Array
(

[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
ログイン後にコピー

)

总结:

以上介绍了PHP中常用的数组排序方法,包括array_sort()函数、sort()函数、asort()函数、ksort()函数、usort()函数、uasort()函数、uksort()函数、natsort()函数、arsort()函数和rsort()函数。不同的排序函数有不同的需求和使用场景,开发者应根据具体的需求来选择合适的排序函数。

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

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