PHPで配列内の要素を並べ替える方法
PHP では、2 次元配列の並べ替えには、組み込み関数 usort()
および uasort()
を使用できます。どちらの関数も配列内の要素を並べ替えることができますが、実装は少し異なります。
usort()
関数は元の配列を並べ替えてブール値を返しますが、uasort()
関数は元の配列を並べ替えますが、キーは保持します。値ペア それらの間の関連付けは、新しいインデックス配列が作成されないことを意味します。以下では、これら 2 つの機能のそれぞれの使用方法を紹介します。
usort()
Function
usort()
関数の最初のパラメータは並べ替える必要がある配列で、2 番目のパラメータはソートする必要があります。は比較関数であり、並べ替える必要がある配列内の要素の位置を交換し、ブール値を返すことによって実装されます。
//示例数组$students $students = array( array("name" => "张三", "age" => 22), array("name" => "李四", "age" => 20), array("name" => "王五", "age" => 25) ); //比较函数cmp function cmp($a, $b){ if ($a["age"] == $b["age"]) { return 0; } return ($a["age"] < $b["age"]) ? -1 : 1; } //使用usort()排序 usort($students, "cmp"); //输出结果 var_dump($students);
上記のコードでは、まず 3 つの要素を含む 2 次元配列 $students を定義します。各要素には 2 つのキーと値のペア「name」と「age」が含まれます。
次に、比較関数 cmp
を定義します。この関数は、「age」キーと値のペアの 2 つの要素の値を比較することによって、要素間の相対的な順序を決定します。 2 つの要素の「年齢」が等しい場合は 0 が返され、$a の「年齢」が $b の「年齢」より小さい場合は、$a が $ より前であることを示す -1 が返されます。 b; それ以外の場合は、$a が $b の後にあることを示す 1 が返されます。
最後に、usort()
関数を使用して、cmp
関数で定義されたルールに従って配列 $students を並べ替えます。出力から、配列内の要素が「age」キーと値のペアに従って小さいものから大きいものへと並べ替えられていることがわかります。
uasort()
関数
uasort()
関数の実装は usort()
と似ていますが、 Different キーと値のペア間の関連付けを保持し、新しいインデックス配列を作成しません。したがって、要素のサイズを比較するだけでなく、キーと値のペアの関連付けも維持する、より複雑な比較関数が必要になります。
//示例数组$students $students = array( "stu1" => array("name" => "张三", "age" => 22), "stu2" => array("name" => "李四", "age" => 20), "stu3" => array("name" => "王五", "age" => 25) ); //比较函数cmp function cmp($a, $b){ if ($a["age"] == $b["age"]) { return 0; } return ($a["age"] < $b["age"]) ? -1 : 1; } //使用usort()排序 uasort($students, "cmp"); //输出结果 var_dump($students);
上記のコードでは、まず 3 つの要素を含む 2 次元の連想配列 $students を定義します。各要素には 2 つのキーと値のペア「name」と「age」が含まれます。違いは、ここでは、前の数値インデックスの代わりに、配列のキー値として文字列「stu1」、「stu2」、および「stu3」を使用していることです。
比較関数 cmp の定義方法は usort()
と同じです。違いは、uasort()
関数を呼び出すときに、配列 $students と比較関数 cmp
をパラメーターとして渡すことです。この関数は、cmp
ルールに従って配列を並べ替えます。並べ替えられた結果は、元の結合キーと値の関係を保持します。
最後に、var_dump() 関数を通じてソート結果を出力します。ご覧のとおり、出力結果は依然として連想配列ですが、要素は「age」キーと値のペアに従って小さいものから大きいものへと並べ替えられています。
usort()
と uasort()
に加えて、PHP は、asort()## など、他の一連の配列ソート関数も提供します。 # 、
arsort()、
ksort()、
krsort() など。開発者は、実際のニーズに応じて適切な関数を選択できます。
以上がPHPで配列内の要素を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、効率的なPHPアレイ重複排除について説明します。 Array_unique()などの組み込み関数をカスタムハッシュマップアプローチと比較し、配列のサイズとデータ型に基づいてパフォーマンスのトレードオフを強調します。 最適な方法は、プロビリに依存します

この記事では、Keyの一意性を使用してPHPアレイ重複排除について説明します。 直接的な重複除去方法ではありませんが、キーユニークネスを活用することで、キーに値をマッピングして重複を上書きすることにより、一意の値を持つ新しい配列を作成できます。 このAP

この記事では、PHPアレイの重複排除を分析し、素朴なアプローチ(O(n²))のパフォーマンスボトルネックを強調しています。 カスタム関数、splobjectStorage、およびハッシュセットの実装を使用して、array_unique()を使用して効率的な代替案を調査し、達成します

この記事では、RabbitMQとRedisを使用してPHPでメッセージキューを実装する詳細を示します。 それは、それらのアーキテクチャ(AMQP対インメモリ)、機能、および信頼性メカニズム(確認、トランザクション、永続性)を比較します。デザインのベストプラクティス、エラー

この記事では、PSRの推奨事項(PSR-1、PSR-2、PSR-4、PSR-12)に焦点を当てた現在のPHPコーディング基準とベストプラクティスを検証します。 一貫したスタイリング、意味のある命名、EFFを通じてコードの読みやすさと保守性を改善することを強調しています

この記事では、大規模なデータセットのPHPアレイ重力化の最適化について説明します。 Array_unique()、array_flip()、splobjectStorage、事前ソートなどの手法を調べ、効率を比較します。 大規模なデータセットの場合、チャンク、データブを示唆しています

この記事では、PHP拡張機能のインストールとトラブルシューティングの詳細で、PECLに焦点を当てています。 インストール手順(検索、ダウンロード/コンパイル、サーバーの再起動、再起動)、トラブルシューティングテクニック(ログのチェック、インストールの確認、

この記事では、PHPの反射APIについて説明し、クラス、方法、およびプロパティのランタイム検査と操作を可能にします。 一般的なユースケース(ドキュメンテーション生成、ORM、依存関係注入)とパフォーマンスオーバーヘアに対する注意の詳細
