$arr=array (
'1' => array ( 'date' => '2011-08-18', 'num' => ; 5 ) ,
'2' => 配列 ( '日付' => '2011-08-20', '数値' => 3 ) ,
'3' => ; '2011 -08-17', 'num' => 10 )
) ; $result = sysSortArray($arr,'num');
$arr=array (
'1) ' => 配列 ( '日付' => '2011-08-18', 'num' => 3 ) ,
'2' => '2011-08-20 ', 'num' => 5 ) ,
'3' => array ( 'date' => '2011-08-17', 'num' => 10 )
) ; **
* レベル 2 の項目ごとに 2 次元配列を並べ替えるには、array_multisort() 関数を使用します。
*
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2";……)
* @ author Lamp100
* @param array $ArrayData 並べ替える配列
* @param string $KeyName1 並べ替える最初の項目
* @param string $SortOrder1 並べ替える順序("SORT_ASC"|"SORT_DESC")
* @param string $SortType1 並べ替えの種類("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")
* @return array 並べ替えられた配列
*/
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
if(!is_array($ArrayData))
{
return $ArrayData;
}
// 引数番号を取得します。
$ArgCount = func_num_args();
// 並べ替えの基準となるキーを取得し、SortRule 配列に置きます。
for($I = 1;$I < $ArgCount;$I + +)$ arg = func_get_arg($ i); .',$ArrayData);';
eval ($EvalString);
return $ArrayData;
}
さらに、array_multisort 関数も非常に強力です。詳細については、非常に詳細な PHP マニュアルを参照してください。
array_multisort() 関数を使用できます。 array_multisort() 関数は、複数の配列または多次元配列をソートします。
パラメータ内の配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じである場合、次の入力配列内の対応する値のサイズに従って並べ替えられます。
最初のパラメータは配列であり、後続の各パラメータは配列または次の並べ替え順序フラグのいずれかになります (並べ替えフラグはデフォルトの並べ替え順序を変更するために使用されます):
•SORT_ASC - デフォルト、昇順で並べ替えます。 (A-Z)
•SORT_DESC - 降順に並べ替えます。 (Z-A)
その後、並べ替えのタイプを指定できます:
•SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
•SORT_NUMERIC - 各項目を数値順に並べ替えます。
•SORT_STRING - 各項目をアルファベット順に並べ替えます。
構文: array_multisort(array1,ソート順序,ソートタイプ,array2,array3...)
•array1: 必須。入力配列を指定します。
•並べ替え順序: オプション。並べ替えの順序を指定します。可能な値は SORT_ASC と SORT_DESC です。
•並べ替えタイプ: オプション。並べ替えの種類を指定します。可能な値は、SORT_REGULAR、SORT_NUMERIC、および SORT_STRING です。
•array2: オプション。入力配列を指定します。
•array3: オプション。入力配列を指定します。
文字列キー名は保持されますが、数値キーは 0 から始まり 1 ずつ増加して再インデックスされます。並べ替え順序と並べ替えの種類は、各配列の後に設定できます。設定されていない場合、各配列パラメーターはデフォルト値を使用します。
以下は例です:
コードをコピーします コードは次のとおりです:
$arr = '';
echo '二次元配列は次のとおりです: '.'
';
for($i=0; $i {
$arr[$i]['val'] = mt_rand(1, 100);
$arr[$i][' num'] = mt_rand(1, 100);
}
echo '
';<br> print_r($arr);<br> echo '
';
echo '二次元配列から抽出します キーは val で、別の配列に分割されます: '.'
';
foreach ($arr as $key => $row)
{
$vals [$key] = $row['val '];
$nums[$key] = $row['num'];
}
echo '
';<br> print_r($vals);<br> echo '
';
echo '並べ替えます:'.'
';
array_multisort($vals, SORT_ASC, $arr);
echo '
';<br> print_r ($vals);<br> echo '
';
?>
run run rusts:
ray
(
[0] =&gt;array
[1] => array
> 3] =&gt;array
;38
キーを抽出します。 val を取得して別の配列に分割します :
Array
(
[0] => 46
[1] => 8
[2] => 37
[3] => 32
[4] => ; 19
[5] = > 30
)
並べ替え:
配列
(
[0] => 8
[1] => 19
[2] => 30
[3] => ; 32
[4 ] => 37
[5] => 46
)
val で昇順にソートされた 2 次元配列を取得します。
http://www.bkjia.com/PHPjc/824986.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/824986.html
技術記事
特定の目的を達成するために、2 次元配列をソートする必要がある場合があります。その方法を説明します。 コードをコピーします。 コードは次のとおりです。 $arr=array ( '1' = array ( 'date' = '2011-08...
)