PHPにおける配列要素の昇順、降順および並べ替えの関数の解析

4224 ワード

1、配列をすばやく作成する関数range()たとえばrange()関数は、1から9までの数値配列をすばやく作成できます.
 
  
$numbers=range(1,9);
echo $numbers[1];
?>

もちろんrange(9,1)を用いて9~1の数値配列が作成される.また、range()は、aからzまでの文字配列を作成することもできます.
 
  
$numbers=range(a,z);
foreach ($numbers as $mychrs)
    echo $mychrs." ";
?>

文字配列を使用する場合は、range(A,z)やrange(a,Z)など、大文字と小文字が異なることに注意します.
range()関数には、range(1,9,3)で作成された配列要素が1,4,7のようなステップ長を設定する3番目のパラメータもあります.
2,PHPにおける通常配列の並び替え一般配列の各要素は文字や数字で表現されるので,配列要素を昇順に並べ替えることができ,この機能関数はsort()である.例:
 
  
$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
    echo $mychrs." ";
sort($people);
echo "
--- ---
";
foreach ($people as $mychrs)
    echo $mychrs." ";
?>

昇順ソート後の配列要素はbirth name nation sexとして表示されます.もちろん、sort()関数はアルファベットの大文字と小文字を区別します(アルファベットが大きい順はA...Z...a...z)
Sort()関数には、昇順のルールが数値か文字列かを比較するために使用される第2のパラメータもあります.例:
 
  
echo "--- ---
";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
    echo $mychrs." ";
echo "
--- ---
";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
    echo $mychrs." ";
?>

SORT_NUMERICとSORT_STRINGは、数字または文字の昇順配列を宣言するために使用されます.数字の昇順に並べば:3,26;しかし、文字の昇順に並べば:26,3です.
PHPには昇順関数のほか、降順または逆配列と呼ばれる関数があります.rsort()関数です.たとえば、
 
  
$num1=range(1,9);
rsort($num1);

ここでは実はrange(9,1)に相当します
3,PHPにおける関連配列の並べ替えPHPは,デジタルインデックス配列に加えて関連配列をサポートする.たとえば、次の配列が相関(関連)配列です.
 
  
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');

sort($peoples)のデフォルトは、要素定義値の昇順にソートされます.関連配列ではasort()関数を使用して表すことができ、関連配列で最も主要なのは、xm、xb、mzなどのキーワードの昇順にソートすることができます.この方法は、関数ksort()関数を使用します.
 
  
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
    echo $mychrs." ";
echo "
-- --
";
asort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";
echo "
-- --
";
ksort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";
?>

従来の配列がsort()昇順関数を有する逆ソートrsort()降順関数に対応し、関連配列にも対応する降順関数:asort()関数およびarsort()関数、ksort()関数およびkrsort()関数がある.
記憶:プロトタイプ関数はsort()であり、a、kは関連配列相関が前置されなければならないことを示し、逆ソートはr修飾を用いる.
4,PHP配列要素ランダムソートPHPではshuffle()関数を使用して配列要素をランダムに再ソートします.たとえば:
 
  
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);
foreach ($fer as $mychrs)
echo $mychrs." ";
?>

毎回異なるソートの組合せが表示されます
5,PHP配列を元の順序で逆ソートPHPでarray_を使用可能reverse()関数は、配列要素を元の順序で逆ソートします.例:
 
  
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs." ";
$fer=array_reverse($fer);
echo "
-- --
";
foreach ($fer as $mychrs)
echo $mychrs." ";
?>

cnbruce cnrose cnjames cnanne
--元の順序で反転--
cnanne cnjames cnrose cnbruceここの$fer=array_に注意reverse($fer); これまでのソート関数は、リファレンスを宣言するだけで、元の配列は再定義されていませんが、関数をデバッグするときは再定義する必要があります.これはarray_reverse()は、元の配列の変更後のコピーを返します.元の配列を必要としない場合は、元の配列を上書きする目的で再定義できます.そうしないと、配列を別途定義してコピーを保存します.たとえば、次のようにします.
$fer_bak=array_reverse($fer);