ホームページ バックエンド開発 PHPチュートリアル PHPのarray_multisort()関数使用上の注意_PHPチュートリアル

PHPのarray_multisort()関数使用上の注意_PHPチュートリアル

Jul 21, 2016 pm 03:27 PM
array php 使用 関数

Function bool array_multisort (array &$arr [,mixed $arg = SORT_ASC [,mixed $arg = SORT_REGULAR [,mixed $...]]] )
パラメータの説明: この関数は複数の配列または多次元配列をソートします
First 最初のパラメータは配列であり、後続の各パラメーターは配列または次の並べ替え順序フラグにすることができます
SORT_ASC - デフォルト、昇順で並べ替えます
SORT_DESC - 降順で並べ替えます
その後、並べ替えタイプを指定できます
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
SORT_NUMERIC - 各項目を数値順に並べ替えます。
SORT_STRING - 各項目をアルファベット順に並べ替えます。
コード例

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

$arr1 = array('10', 11, 100, 100, 'a');
$arr2 = array(1, 2, 3, ' 2', 5);
array_multisort($arr1, $arr2);
結果は次のようになります:
$arr1
Array ( [0] => 10 [1] => a [2] = > 11 [ 3] => 100 [4] => 100 )
# '10' は、他の 3 つの数値よりも小さい整数 10 に変換されます
# '10 ' は、最初の文字 '1' の ASCII コード値が 49 である文字列は 'a' (ASCII 値は 97) より小さいため、'10' が最小要素と比較されます
# 'a'他の 3 つの数値を比較するときに整数に変換されます 0、他の 3 つの数値より小さい
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] = > 2 [4] => 3 )
# $arr2 要素 1 は $arr1 要素 '10' の位置に対応するため、位置 [0] にランクされます
# $arr1[2] => 100, $ arr1[3] => 100 は $arr2 要素 '2' にそれぞれ対応します。 3 は '2' より大きいので、2 に対応する $arr1[2] => 100 のソートされた添字は
3 で、3 に対応する $arr1[3] => 100 のソートされた添字は 4 になります。ソートに参加する配列要素の数は変わりません
2。ソートされた配列要素の位置は、たとえば '10' => 11 => 2 に対応します。前の配列の順序に基づいて
4. 前の配列が等しい要素に遭遇した場合、後者の配列を比較します


array_multisort — 複数の配列または多次元配列を並べ替えます


説明 bool array_multisort ( array $ar1 [,mixed $arg [,mixed $ ... [, array $... ]]] )
成功した場合は TRUE を返し、失敗した場合は FALSE を返します

array_multisort() は、複数の配列を一度に並べ替えたり、次の順序に従って並べ替えたりするために使用できます。特定の次元または複数の次元 多次元配列をソートします。

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

入力配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは 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"); = array(1, 3, "2", 1); array_multisort($ar1); var_dump($ar2); この例では、最初の配列には「10」、「a」、100、100 が含まれます。 2 番目の配列には 1,1,"2",3 が含まれます。 2 番目の配列内の項目の順序は、最初の配列内の対応する項目 (100 と 100) の順序とまったく同じです。


コードをコピーします

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


array(4) {
[0]=> string(2) "10"
[1]=> string(1) "a"
[2]=> int(100)
[3]=> int(100)
} array(4) { [0]=> int(1)=> int; 1) [2]=> string(1) "2" [3]=> int(3)
}


#2 コードをコピーします

は次のとおりです:


< ;?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 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、11、「a」になります(昇順の文字列として扱われます)。 2 番目の配列には、1、3、「2」、2、1 (降順の数値として扱われます) が含まれます。
コードをコピーします コードは次のとおりです:

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


#4 データベースの結果を並べ替えます
この例では、データ配列の各セルがテーブル内の行を表します。これは、データベースに記録される典型的なデータのコレクションです。例のデータは次のとおりです:

ボリューム | エディション
-----+--------
67 | 2
86 | 6
98 | | 6
67 | 7
データはすべて data という名前の配列に格納されます。これは通常、mysql_fetch_assoc() などのループを通じてデータベースから取得されます。

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

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

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

// データをボリュームに従って降順に、エディションに従って昇順に並べ替えます
// $data を最後のパラメータとして使用し、共通キーによって並べ替えます
array_multisort ($volume, SORT_DESC, $edition, SORT_ASC, $data);
?> データ収集がソートされ、結果は次のようになります。 ------
98 | 2
86 | 1
85 | 6
67 2
67 |


例 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);


上記のルーチンは次のように出力します。
[0] => アルファ [1] => アトミック [3] => ベータ )
【翻訳者注】この関数は非常に便利です。もう一度お試しください。 次の例を見てください:


例 #6 ランキング



コードをコピー

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

$grade = array("score" => array (70, 95, 70.0 , 60, "70"),
"name" => array("張三", "李思", "王武",
"趙劉", "劉斉")) ;
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(60)
}
["] =>array(5) {
[0]=>
string(5) "Li Si"
[1]=>
string(6) "Liu Qi"
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 ポイントはそれぞれ整数、浮動小数点数、文字列で表され、それらのソート結果はプログラム出力で明確に確認できます。



http://www.bkjia.com/PHPjc/323703.html

www.bkjia.com

tru​​e

技術記事関数 bool array_multisort ( array $arr2 = array(1, 2, 3, '2', 5); array_multisort($arr1, $arr2); 結果は次のようになります: $arr1 Array ( [0] = 10 [1] = a [ 2] = 11 [3] = 100 [4] = 100 ) # '10' in...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles