ホームページ  >  記事  >  バックエンド開発  >  PHPの配列ソート方法のまとめ

PHPの配列ソート方法のまとめ

小云云
小云云オリジナル
2017-11-14 10:29:582302ブラウズ

現在、PHP は世界中で人気の言語になっています。いくつかの PHP 配列の定義と使用法を簡単に紹介しました。ただし、PHP 配列の関連操作についてはさらに学ぶ必要があります。私が最初に遭遇したのは、PHP 配列のソートと降順の問題でした。
sort: この関数は、配列内のセルに新しいキー名を割り当てます。これにより、元のキーが単に並べ替えられるのではなく、削除されます。
rsort: この関数は配列を逆順 (最高位から最低位) にソートします。 元のキー名を並べ替えるだけでなく、元のキー名を削除します。
asort: 配列をソートし、インデックス関係を維持します
arsort: 配列を逆ソートし、インデックス関係を維持します
ksort: キー名とデータの関連付けを維持しながら、キー名に従って配列をソートします
krsort: 逆ソートキー名に従って配列し、キー名とデータ間の関連付けを保持します
natsort: 英数字文字列を並べ替え、元のキーと値の関連付けを保持します
natcasesort: natsort 並べ替えアルゴリズムと同じですが、大文字と小文字を区別しません
PHP 配列ソート (sort)
数値インデックス配列のソート:
関数: sort(array, [sort type])
説明: sort() 関数は、指定された配列 (最初のパラメーター) を昇順にソートします。
sort 関数の 2 番目のパラメータは、並べ替えの種類を指定するために使用され、オプションのパラメータです。
SORT_REGULAR: デフォルト値、タイプを変更せずに並べ替えます。
SORT_NUMERIC: 値を数値として並べ替えます。 ;
SORT_STRING: 文字列の並べ替えに応じて値を並べ替えます。配列に 4 と "37" がある場合は、数値で並べ替えます。4 は "37" より小さいです。 ;

コードは次のとおりです:

<?php 
$a = array(4,"37",3,100,0,-5); 
sort($a); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
sort($a,SORT_STRING); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
?>

出力結果:


-5 0 3 4 37 100
-5 0 100 3 37 4
降順ソート: rsort(array, [sort type])
パラメータの使用法はソート機能と同じです。

連想配列のソート:
関数: asort(array, [ソートタイプ])
説明: 連想配列の要素値に従って昇順にソートします。パラメータの使用法は、上記のsort関数で示したとおりです。

関数: ksort(array, [ソートタイプ])
説明: 連想配列のキーワードに従って昇順にソートします。パラメータの使用法は、上記のsort関数で示したとおりです。

コードは次のとおりです:

<?php 
$a = array( 
"good" => "bad", 
"right" => "wrong", 
"boy" => "girl"); 
echo "value sort<br />"; 
asort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
echo "<br />key sort<br />"; 
ksort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
?>

出力結果:

値ソート
良い : 悪い
男の子 : 女の子
正しい : 間違った

キーソート
男の子 : 女の子
良い : 悪い
正しい : 間違った
降順ソート:
arsort(array, [sort type]) asort に対応します
krsort(array, [sort type]) ksort に対応します

配列を素早く作成する関数 range()

たとえば、range() 関数は1 から 9 までの数値の配列を作成します:

コードは次のとおりです:

<?php 
$numbers=range(1,9); 
echo $numbers[1]; 
?>

もちろん、 range(9,1) を使用すると、9 から 1 までの数値配列が作成されます。同時に、 range() は a から z までの文字配列を作成することもできます。


コードは次のとおりです:

<?php 
$numbers=range(a,z); 
foreach ($numbers as $mychrs) 
echo $mychrs." "; 
?>

たとえば、range(A,z) などの文字配列を使用する場合は、大文字と小文字に注意してください。と range(a,Z) は異なります。 range() 関数には 3 番目のパラメーターもあり、これはステップ サイズの設定に使用されます。たとえば、range(1,9,3) によって作成される配列要素は 1、4、7 です。一般的な PHP 配列のソート 一般に、配列内の各要素は文字または数字で表されるため、配列要素を昇順に並べることができます。この関数が sort() です。例:


コードは次のとおりです:

<?php 
$people=array(&#39;name&#39;,&#39;sex&#39;,&#39;nation&#39;,&#39;birth&#39;); 
foreach ($people as $mychrs) 
echo $mychrs." "; 
sort($people); 
echo "<br />---排序后---<br />"; 
foreach ($people as $mychrs) 
echo $mychrs." "; 
?>

昇順にソートされた配列要素は、当然、sort() 関数では大文字と小文字が区別されます (文字の大きい順から順に)。小さい場合: A...Z... a...z)


Sort() 関数には 2 番目のパラメーターもあります。これは、数値の比較に PHP 配列の昇順ソート ルールを使用するかどうかを示すために使用されます。文字列。例:

コードは次のとおりです:

<?php 
echo "---按数字升序排序---<br />"; 
$num2=array(&#39;26&#39;,&#39;3&#39;,); 
sort($num2,SORT_NUMERIC); 
foreach ($num2 as $mychrs) 
echo $mychrs." "; 
echo "<br />---按字符升序排序---<br />"; 
$num3=array(&#39;26&#39;,&#39;3&#39;); 
sort($num3,SORT_STRING); 
foreach ($num3 as $mychrs) 
echo $mychrs." "; 
?>

SORT_NUMERIC と SORT_STRING は、数値または文字の昇順を宣言するために使用されます。数字の昇順に並べると 3、26 になりますが、文字の昇順に並べると 26、3 になります。 PHP には昇順関数に加えて、rsort() 関数という降順または逆ソート関数もあります。たとえば、ここでは rsort($num1); と同等です。 range(9 ,1) まで。

この記事を読んだ後は、PHP の配列の並べ替えについてより明確に理解できるようになり、さまざまな配列の並べ替え方法も習得できると思います。学んだ内容を適用する必要があります。

関連する推奨事項:

PHP 配列の定義

PHP 配列の最も完全な入門

PHP 配列の使用方法の概要

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

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