ホームページ  >  記事  >  バックエンド開発  >  PHPの配列はソートできるのでしょうか?

PHPの配列はソートできるのでしょうか?

青灯夜游
青灯夜游オリジナル
2022-05-07 16:59:242111ブラウズ

php 配列はソートできます。 PHP には、さまざまな配列ソート関数があります: 1. sort() (構文「sort(array)」を使用して昇順にソートできます); 2. rsort() (構文「sort(array)」を使用して降順にソートできます) "rsort(array)"; 3. shuffle() はランダムに並べ替えることができ、構文は "shuffle(array)" です。

PHPの配列はソートできるのでしょうか?

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php 配列はソート可能。

php は、配列のさまざまな並べ替えニーズ (キー値、キー名、昇順、降順など) に対応するさまざまな組み込み関数を提供します。

#1. 配列を昇順に並べ替える PHP には、よく使用される配列の昇順並べ替え関数が 3 つあります。

    sort(): 配列要素を昇順に並べ替えます
  • asort(): 関連付けられた配列のキー値に従って配列を昇順に並べ替えます
  • ksort(): 関連付けられた配列のキー名に従って、配列を昇順に並べ替えます
1. ソートを使用します。 () function

sort() 関数は、配列要素を昇順 (小さいものから大きいもの、低いものから高いもの) に並べ替えます。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
sort($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
sort($arr2);
var_dump($arr2);
?>

出力:


PHPの配列はソートできるのでしょうか?

sort() 関数には 2 つのパラメータがあります: $array (必須) と $sortingtype (省略可能) )。


このうち、$sortingtype パラメータは、関数のソート モードを定義し、配列の要素/項目の比較方法を指定するために使用されます。デフォルト値は "SORT_REGULAR" です。

$sortingtype パラメータは次の値に設定できます:

    0 = SORT_REGULAR: 型を変更せずに配列要素を通常どおり比較します (デフォルト値);
  • 1 = SORT_NUMERIC: 配列要素を数値として扱う;
  • ##2 = SORT_STRING: 配列要素を文字列として扱う;
  • 3 = SORT_LOCALE_STRING: 現在のロケール (setlocale() で変更可能) に基づいて、配列要素を文字列として比較します。
  • 4 = SORT_NATURAL: natsort() と同様に、配列要素ごとに文字列を「自然な順序」で並べ替えます。これは PHP5.4.0 の新機能です。
  • 5 = SORT_FLAG_CASE: 大文字と小文字を区別しない並べ替え文字列である SORT_STRING または SORT_NATURAL (またはビット単位の演算) と組み合わせることができます。
  • <?php
    header("Content-type:text/html;charset=utf-8");
    $arr1 = array(10, 23, 5, 12, 84, 16);
    sort($arr1,2);
    var_dump($arr1);
    
    $arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
    sort($arr2,1);
    var_dump($arr2);
    ?>
  • 出力結果:


sort() 関数はインデックス関係を維持せず、削除します。配列を元のキー名に置き換え、新しい数値キー名を割り当てます。 PHPの配列はソートできるのでしょうか?

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
sort($age);
var_dump($age);
?>

出力:


sort() 関数は、値とインデックスの関係がそれほど重要ではない配列に使用できます。 (数値配列) ですが、値とインデックスの関係に焦点を当てた配列は適していません。この時点で、asort() 関数と ksort() 関数を使用する必要があります。 PHPの配列はソートできるのでしょうか?

2. asort() 関数を使用します

asort() 関数は、キー値に基づいて連想配列を昇順に並べ替えますが、変更は行いません元の配列内のキー名。

header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
asort($age);
var_dump($age);
?>

出力:


PHPの配列はソートできるのでしょうか?asort() 関数にも 2 つのパラメータがあり、パラメータ値はソートと同じです()関数を参照してください。

3. ksort() 関数を使用する

ksort() 関数は、関連する配列をキー名に従って昇順に並べ替えます。元の配列のキー名は変更しないでください。

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
ksort($age);
var_dump($age);
?>

出力:


##

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
ksort($arr);
var_dump($arr);
?>

出力:

PHPの配列はソートできるのでしょうか?


ksort()関数にもパラメータが2つあり、パラメータの値はsort()関数と同じなので参照することができます。 PHPの配列はソートできるのでしょうか?

2. 配列を降順に並べ替える

PHP では、よく使用される 3 つの配列の降順並べ替え関数があります。

rsort(): 配列要素を降順に並べ替えます

  • arsort(): 関連付けられたキー値に従って配列を降順に並べ替えますarray

  • krsort(): 関連付けられた配列

  • 1 のキー名に従って、配列を降順に並べ替えます。 rsort() 関数

rsort() 関数は、配列要素を降順、つまり大きいものから小さいもの、高いものから低いものに並べ替えるのに使用されます。

コード例を見てみましょう:

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(2, 1, 5, 16, 29, 15);
rsort($arr);
var_dump($arr);
?>

出力結果:

rsort() 函数有两个参数:$array(必须)和$sortingtype(可省略)。$sortingtype参数用于表示排序模式,具体取值可以参考上篇文章的sort()函数。下文arsort()和krsort()同样参考sort()函数。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(2, 1, 5, 16, 29, 15);
rsort($arr,2);
var_dump($arr);
?>

输出结果:

PHPの配列はソートできるのでしょうか?

rsort()和sort()函数一样,都不会保持索引关系,会删除数组中原有的键名,并为其重新赋值;因此不适合用于注重值和索引间关系的数组。

2、使用arsort()函数

arsort()函数会根据关联数组的键值进行降序排序,且不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
arsort($age);
var_dump($age);

arsort($age,2);
var_dump($age);
?>

输出结果:

PHPの配列はソートできるのでしょうか?

3、使用krsort()函数

krsort()函数会根据关联数组的键名进行降序排序,也不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
krsort($arr);
var_dump($arr);

krsort($arr,1);
var_dump($arr);
?>

输出结果:

PHPの配列はソートできるのでしょうか?

3、随机排序

在PHP中,可以使用shuffle()函数随机排序,打乱数组元素。

shuffle()函数会把数组中的元素按随机顺序重新排列。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
shuffle($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
shuffle($arr2);
var_dump($arr2);
?>

输出结果:

PHPの配列はソートできるのでしょうか?

刷新一下,结果就改变了:

PHPの配列はソートできるのでしょうか?

PHPの配列はソートできるのでしょうか?

说明:shuffle()函数不仅会将数组随机打乱,还会删除数组中原有的键名,并为其赋与新的数值键名(即不会保持索引关系)。

推荐学习:《PHP视频教程

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

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