php では、array_multisort() は複数の配列を一度に並べ替えたり、特定の次元または複数の次元に従って多次元配列を並べ替えたりできます。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
bool array_multisort (配列 ar1 [, 混合引数 [, 混合 ... [, 配列 ...]]] )
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
array_multisort() を使用すると、複数の配列を一度に並べ替えたり、1 つ以上の次元に従って多次元配列を並べ替えたりできます。
連想 (文字列) キー名は変更されませんが、数値キー名は再インデックスされます。
例 1. 多次元配列のソート
コードは次のとおりです |
コードをコピー |
$ar = 配列(
array("10", 11, 100, 100, "a"),
配列(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 (数値として降順に並べ替えられます)。
コードは次のとおりです |
コードをコピー |
配列(2) {
[0]=> 配列(5) {
[0]=> 文字列(2) "10"
[1]=> int(100)
[2]=> int(100)
[3]=> int(11)
[4]=> 文字列(1) "a"
}
[1]=> 配列(5) {
[0]=> int(1)
[1]=> int(3)
[2]=> 文字列(1) "2"
[3]=> int(2)
[4]=> int(1)
}
}
|
この例で並べ替えると、最初の配列には 10、100、100、"a" (文字列の昇順で並べ替え) が含まれ、2 番目の配列には 1、3、"2"、1 (数値として並べ替え) が含まれます。降順ソート)。
例 2. 多次元配列のソート
コードは次のとおりです |
コードをコピー |
$ar = 配列(
array("10", 11, 100, 100, "a"),
配列(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 (降順の数値として扱われます) が含まれます。
コードは次のとおりです |
コードをコピー |
配列(2) {
[0]=> 配列(5) {
[0]=> 文字列(2) "10"
[1]=> int(100)
[2]=> int(100)
[3]=> int(11)
[4]=> 文字列(1) "a"
}
[1]=> 配列(5) {
[0]=> int(1)
[1]=> int(3)
[2]=> 文字列(1) "2"
[3]=> int(2)
[4]=> int(1)
}
}
|
例 3 アプリケーションで一般的に使用される例を包括的に見てみましょう。
コードは次のとおりです |
コードをコピー |
header('Content-Type: text/html; charset=utf-8');
エコー '';
//元の配列形式
$array = array(
'key1' => 配列(
'item1' => '65'、
'item2' => '35'、
'item3' => '84'、
)、
'key2' => array(
'item1' => '24'、
)、
'key3' => 配列(
'item1' => '38'、
'item3' => '45'、
)、
);
//ソートのキー
//配列内の item1 で並べ替えます
// item2 に変更することもできます
$sort = 'アイテム1';
foreach($array as $k => $v)
{
$newArr[$k] = $v[$sort]
}
//この関数が正しく実行されると、元の配列キー値の順序が直接変更されます
//実行が失敗した場合は bool(false) を返します
array_multisort($newArr,SORT_DESC, $array);
var_dump($array);
//----------ソートされた配列の印刷効果が開始します---------- -
配列(3) {
["key1"]=>
配列(3) {
["アイテム1"]=>
文字列(2) "65"
["アイテム2"]=>
文字列(2) "35"
["アイテム3"]=>
文字列(2) "84"
}
["key3"]=>
配列(2) {
["アイテム1"]=>
文字列(2) "38"
["アイテム3"]=>
文字列(2) "45"
}
["key2"]=>
配列(1) {
["アイテム1"]=>
文字列(2) "24"
}
}
//----------ソートされた配列の印刷効果が終了します---------------------- -
array_multisort() 関数の詳細な説明については、http://www.bKjia.c0m/phper/php-function/39192.htm を参照してください
http://www.bkjia.com/PHPjc/629150.html
www.bkjia.com
| true
http://www.bkjia.com/PHPjc/629150.html
技術記事 PHP では、array_multisort() は複数の配列を一度に並べ替えたり、特定の次元または複数の次元に従って多次元配列を並べ替えたりできます。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。 ...