配列

Jun 21, 2016 am 08:55 AM
array gt sort string

array_multisort — 複数の配列または多次元配列を並べ替えます
説明
bool array_multisort ( array ar1 [,mixed arg [,mixed ... [, array ...]]] )

array_multisort
(PHP 4、PHP 5)
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

array_multisort() を使用すると、複数の配列を一度に並べ替えたり、1 つ以上の次元に従って多次元配列を並べ替えたりできます。

連想 (文字列) キー名は変更されませんが、数値キー名は再インデックスされます。

入力配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じであると比較された場合、次の入力配列内の対応する値のサイズに従って並べ替えられます。

この関数のパラメータ構造はやや特殊ですが、非常に柔軟です。最初のパラメータは配列である必要があります。次の各引数には、以下にリストされている配列または並べ替えフラグを指定できます。

ソート順序フラグ:
SORT_ASC - 昇順でソート

SORT_DESC - 降順でソート
ソートタイプフラグ:
SORT_REGULAR - 通常の方法で項目を比較

SORT_NUMERIC - 数値に基づいて項目を比較

SORT_STRING - 文字列に基づいて項目を比較
各配列の後に 2 つの同様の並べ替えフラグを指定することはできません。各配列の後に指定された並べ替えフラグは、その配列に対してのみ有効です。それ以前は、デフォルト値 SORT_ASC および SORT_REGULAR が使用されていました。

例 1. 複数の配列を並べ替える

$ar1 = array(“10″, 100, 100, “a”); (1, 3, “2″, 1);
array_multisort($ar1, $ar2);
var_dump($ar2); ;

この例で並べ替えると、最初の配列には「10」、「a」、100、100 が含まれます。 2 番目の配列には 1,1,"2",3 が含まれます。 2 番目の配列内の項目の順序は、最初の配列内の対応する項目 (100 と 100) の順序とまったく同じです。

配列(4) {
[0]=> 文字列(2) “10″
[1]=> 文字列(1) “a”
[2]= > int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(1) => int(1)
[2]=> 文字列(1) "2''
[3]=> int(3)



例 2. 多次元配列のソート

$ar = array (array (“10″, 100, 100, “a”), array (1, 3, “ 2 '', 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC); >
この例で並べ替えると、最初の配列には 10、100、100、"a" (文字列の昇順) が含まれ、2 番目の配列には 1、3、"2"、1 (数値として) が含まれます。降順)。

例 3. 多次元配列のソート

$ar = array(
array(“10″, 11, 100, 100, “a” )、
array( 1, 2, “2”, 3, 1)
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

この例では、ソート後の最初の配列は "10", 100, 100, "a ” (昇順の文字列として扱われます)。 2 番目の配列には、1、3、「2」、2、1 (降順で数値として扱われます) が含まれます。

配列(2) {
[0]=> 配列(5) {
[0]=> 文字列(2) “10″
[1]=> int(100)
[2]=> int(100)
[3]=> int(11)
[4]=> 文字列(1) "a"
}
[1]=> 配列(5) {
[0]=> int(1)
[2]=> 文字列(1) “2″
[3]=> int(2)
[4]=> int(1)
}
}



例 4. データベース結果の並べ替え

この例では、データ配列の各セルがテーブル内の行を表します。これは、データベースに記録される典型的なデータのコレクションです。

例のデータは次のとおりです。

ボリューム版
——-+——–
67 2
86 1
85 6
98 2
86 6
67 7

データはすべて data という名前の配列に格納されます。これは通常、mysql_fetch_assoc() などのループを通じてデータベースから取得されます。

$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'エディション' => 1);
$data[] = 配列('ボリューム' => 85, 'エディション' => 6); ('ボリューム' => 98, 'エディション' => 2);
$data[] = array('ボリューム' => 86, 'エディション' => 6); [] = array('volume' => 67, 'edition' => 7);
?>
この例では、ボリュームは降順にソートされ、エディションは昇順にソートされます。

これで行を含む配列ができましたが、array_multisort() には列を含む配列が必要なので、次のコードを使用して列を取得し、並べ替えます。

// 列のリストを取得します
foreach ($data as $key => $row) {
$volume[$key] = $row[ 「ボリューム」];
$edition[$key] = $row['edition'];
}

// データをボリュームに従って降順に、エディションに従って昇順に並べます
//最後のパラメータとして $data を指定し、共通キーで並べ替えます。
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
データ コレクションが並べ替えられます。結果は次のようになります:

ボリューム版
——-+——–
98 2
86 1
86 6
85 6
67 2
67 7



例 5. 大文字と小文字を区別しない並べ替え

SORT_STRING と SORT_REGULAR は大文字と小文字が区別され、大文字は小文字よりも前に並べ替えられます。

大文字と小文字を区別しない並べ替えを実行するには、元の配列の小文字で並べ替えます。

$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_ lowercase = array_map('strto lower', $array) ;

array_multisort($array_ lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array)

;

配列
(
[0] => アルファ
[1] => アトミック
[2] => バンク
[3] => ベータ
)



[翻訳者のメモ] この関数は非常に便利です。理解を助けるために、次の例を見てください。

例 6. ランキング

$grade = array(“score” => array(70, 95, 70.0, 60, “70″),
“name” => array( "張三", "Li Si", "Wang Wu",
"Zhao Liu", "Liu Qi"));
array_multisort($grade["score"], SORT_NUMERIC, SORT_DESC,
// スコアを次のように使用します数値、大きい順に並べ替えます
$grade["name"], SORT_STRING, SORT_ASC);
// 名前を文字列として使用し、小さい順に並べ替えます
var_dump($ Grade); >?>

上記の例は次のように出力します。

array(2) {
["score"]=> 0]=>
int(95)
[1]=>
string(2) "70"
[2]=>float(70 )
[3]=>int(70)
[4]=>
int(60)
}
array(5) ) {
[0]=>
文字列(5) 「李思」
[1]=>
文字列(6) 「劉斉」
[ 2]=> ;
string(7) "Wang Wu"
[3]=>
string(9) "Zhang San"
[4]=>string(8) "Zhao" Liu”
}
}

この例では、成績を含む配列 $grade がスコア (スコア) によって高いものから低いものに並べ替えられ、同じスコアを持つ人が名前 (名前) によって並べ替えられます。 ) を昇順に並べます。並べ替えの結果、Li Si が 95 ポイントで 1 位、Zhao Liu が 60 ポイントで 5 位にランクされました。 Zhang San、Wang Wu、Liu Qi はいずれも 70 ポイントを獲得し、ランキングは名前のアルファベット順に並べられ、Liu が 1 位、Wang が 2 位、Zhang が最後でした。区別するために、3 つの 70 ポイントはそれぞれ整数、浮動小数点数、文字列で表され、それらのソート結果はプログラム出力で明確に確認できます。

補足:

PHP 言語における多次元配列のソートの最も複雑なソート方法です。実際のコーディングでは PHP 関数 array_multisort() を使用して、この複雑な並べ替えを実装します。たとえば、ネストされた配列は、最初に共通キーを使用して並べ替えられ、次に別のキーに基づいて並べ替えられます。これは、SQL の ORDER BY ステートメントを使用して複数のフィールドを並べ替えることに非常に似ています。
PHP 関数 asort() は、値のソートという特定の方法を使用して分析します
PHP 関数 asort() の機能的特徴の詳細な説明
PHP 自然言語ソートの特徴の概要
PHP 自然言語逆順の具体的な実装方法
PHP 関数 usort() を使用してカスタム ソートを実装する方法
リスト J の例では、PHP 関数 array_multisort() がどのように機能するかを説明しています。1, " name" => "Boney M", "評価 " => 3), array("id" => 2, "name" => "Take That", "評価" => 1), array ("id" => 3, "name" => "ザ・キラーズ", "評価" => 4), array("id" => 4, "name" => "ルサイン", "評価" => 3), ); foreach ( $data as $key => $value) { $name[$key] = $value[名前]; $評価[$key] = $value[評価]; } array_multisort($rated, $name, $data) ; print_r($data);?> ここでは、$data 配列内の行と列の配列をシミュレートします。次に、PHP 関数 array_multisort() を使用して、最初に評価順に、次に評価が等しい場合は名前順にデータ セットを並べ替えました。出力は次のとおりです:


コードをコピー

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


配列 ([0] => 配列
(

[id] => 2 [名前] => テイクザット [評価] => 1 ) [1] => 配列 (

[id] => 1

[名前] => ボニー M
[評価] => 3
) [2] => 配列
(
[id] => 4
[名前] => ルサイン
[評価] => 3
)
[3 ] => 配列
(
[id] => >

PHP 関数 array_multisort() は、PHP で最も便利な関数の 1 つであり、非常に幅広い用途があります。さらに、例でわかるように、無関係な複数の配列を並べ替えたり、1 つの要素を次の並べ替えの基礎として使用したり、データベースの結果セットを並べ替えたりすることもできます。



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Jul 24, 2023 pm 07:55 PM

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java 開発で基本データ型を文字列に変換する必要がある場合、一般的な方法は String クラスの valueOf() 関数を使用することです。この関数は、基本データ型のパラメータを受け入れ、対応する文字列表現を返すことができます。この記事では、基本的なデータ型変換に String.valueOf() 関数を使用する方法を検討し、いくつかのコード例を提供します。

char配列を文字列に変換する方法 char配列を文字列に変換する方法 Jun 09, 2023 am 10:04 AM

char配列をstringに変換する方法:代入によって実現できます {char a[]=" abc d\0efg ";string s=a;} 構文を使用して、char配列にstringに値を直接代入させて実行します変換を完了するためのコード。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

uniapp でドラッグ アンド ドロップの並べ替えとドラッグ アンド ドロップ操作を実装する方法 uniapp でドラッグ アンド ドロップの並べ替えとドラッグ アンド ドロップ操作を実装する方法 Oct 19, 2023 am 09:39 AM

Uniapp はクロスプラットフォーム開発フレームワークであり、その強力なクロスエンド機能により、開発者はさまざまなアプリケーションを迅速かつ簡単に開発できます。 Uniapp でのドラッグ アンド ドロップの並べ替えとドラッグ アンド ドロップ操作の実装も非常に簡単で、さまざまなコンポーネントや要素のドラッグ アンド ドロップ操作をサポートできます。この記事では、Uniapp を使用してドラッグ アンド ドロップの並べ替えとドラッグ アンド ドロップ操作を実装する方法を紹介し、具体的なコード例を示します。ドラッグ アンド ドロップによる並べ替え機能は、多くのアプリケーションで非常に一般的であり、たとえば、リストのドラッグ アンド ドロップによる並べ替え、アイコンのドラッグ アンド ドロップによる並べ替えなどの実装に使用できます。以下に列挙します

C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる Apr 02, 2024 pm 05:36 PM

C++sort 関数の最下層はマージ ソートを使用し、その複雑さは O(nlogn) で、クイック ソート、ヒープ ソート、安定したソートなど、さまざまなソート アルゴリズムの選択肢を提供します。

2wワード詳細説明文字列、yyds 2wワード詳細説明文字列、yyds Aug 24, 2023 pm 03:56 PM

皆さんこんにちは。今日は Java の基本知識である String についてお話します。 String クラスの重要性は言うまでもなく、バックエンド開発で最もよく使用されるクラスであるため、説明する必要があります。

Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Jul 25, 2023 pm 05:16 PM

Java の String.replace() 関数を使用して文字列内の文字 (文字列) を置換する Java では、文字列は不変オブジェクトです。つまり、文字列オブジェクトが作成されると、その値は変更できません。ただし、文字列内の特定の文字または文字列を置換する必要がある状況が発生する場合があります。現時点では、Java の String クラスの replace() メソッドを使用して文字列置換を実装できます。 String クラスの replace() メソッドには 2 つのタイプがあります。

See all articles