PHP実装のカスタム配列ソート関数とソートクラスの例
2171 ワード
この例では、PHP実装のカスタム配列ソート関数とソートクラスについて説明します.皆さんの参考にしてください.具体的には以下の通りです.
マニュアルのカスタムソートクラス:
PHPに関する内容についてもっと兴味のある読者は、「PHP配列(Array)操作技巧大全」、「phpソートアルゴリズム総括」、「php文字列(string)用法総括」、「PHP XMLファイルに対する操作技巧総括」、「PHPエラーと异常処理方法総括」、「PHP演算と演算子用法総括」、「PHP基本文法入門教程」、「phpオブジェクト向けプログラミング入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.
/*
*
* uasort($arr,function_name)
*
**/
$arr = array(
array('a'=>1,'b'=>'c'),
array('a'=>4,'b'=>'a'),
array('a'=>5,'b'=>'g'),
array('a'=>7,'b'=>'f'),
array('a'=>6,'b'=>'e')
);
function compare_arr($x,$y){
if($x['b']$y['b']){
return 1;
}else{
return 0;
}
}
uasort($arr,'compare_arr');
foreach($arr as $a){
echo $a['a'].'=>'.$a['b'].'
';
}
マニュアルのカスタムソートクラス:
class multiSort
{
var $key; //key in your array
//
function run ($myarray, $key_to_sort, $type_of_sort = '')
{
$this->key = $key_to_sort;
if ($type_of_sort == 'desc')
uasort($myarray, array($this, 'myreverse_compare'));
else
uasort($myarray, array($this, 'mycompare'));
return $myarray;
}
//
function mycompare($x, $y)
{
if ( $x[$this->key] == $y[$this->key] )
return 0;
else if ( $x[$this->key] < $y[$this->key] )
return -1;
else
return 1;
}
//
function myreverse_compare($x, $y)
{
if ( $x[$this->key] == $y[$this->key] )
return 0;
else if ( $x[$this->key] > $y[$this->key] )
return -1;
else
return 1;
}
}
PHPに関する内容についてもっと兴味のある読者は、「PHP配列(Array)操作技巧大全」、「phpソートアルゴリズム総括」、「php文字列(string)用法総括」、「PHP XMLファイルに対する操作技巧総括」、「PHPエラーと异常処理方法総括」、「PHP演算と演算子用法総括」、「PHP基本文法入門教程」、「phpオブジェクト向けプログラミング入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.