国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php專用數(shù)組排序類ArraySortUtil用法實例

2020-03-22 20:30:43
字體:
來源:轉載
供稿:網(wǎng)友
本文實例講述了php專用數(shù)組排序類ArraySortUtil用法。分享給大家供大家參考。具體如下: * ArraySortUtil is a array sort utility, you can extends the sorting engine. * @version 0.1 * @package utility.sorthtml' target='_blank'>class ArraySortUtil static function uasort($unsort, $fields) if ( !is_array($unsort) || sizeof($unsort) = 0 ) return $unsort; $sorted = uasortEngine::uasort($unsort, $fields); return $sorted; static function multisort($unsort, $fields) if ( !is_array($unsort) || sizeof($unsort) = 0 ) return $unsort; $sorted = multisortEngine::multisort($unsort, $fields); return $sorted;class multisortEngine static function multisort($unsort, $fields) $sorted = $unsort; if (is_array($unsort)) $loadFields = array(); foreach($fields as $sortfield) $loadFields["field"][] = array( "name" = $sortfield["field"], "order" = $sortfield["order"], "nature" = $sortfield["nature"], "caseSensitve" = $sortfield["caseSensitve"] $loadFields["data"][$field["field"]] = array(); // Obtain a list of columns foreach ($sorted as $key = $row) { foreach($loadFields["field"] as $field) { $value = $row[$field["name"]]; $loadFields["data"][$field["name"]][$key] = $value; $parameters = array(); foreach($loadFields["field"] as $sortfield) { $array_data = $loadFields["data"][$sortfield["name"]]; $caseSensitve = ( $sortfield["caseSensitve"] == null ) $sortfield["caseSensitve"] : false; if (!$caseSensitve) $array_data = array_map('strtolower', $array_data); $parameters[] = $array_data; if ( $sortfield["order"] != null ) $parameters[] = ( $sortfield["order"] ) SORT_DESC : SORT_ASC; if ( $sortfield["nature"] != null ) $parameters[] = ( $sortfield["nature"] ) SORT_REGULAR : SORT_STRING; $parameters[] = &$sorted; call_user_func_array("array_multisort", $parameters); return $sorted;class uasortEngine static private $caseSensitve = false; static private $sortfields = array(); static private $sortorder = true; static private $nature = false; static private function uasort_callback(&$a, &$b) foreach(self::$sortfields as $sortfield) $_field = $sortfield["field"]; $_order = isset($sortfield["order"]) $sortfield["order"] : self::$sortorder; $_caseSensitve = isset($sortfield["caseSensitve"]) $sortfield["caseSensitve"] : self::$caseSensitve; $_nature = isset($sortfield["nature"]) $sortfield["nature"] : self::$nature; if ($_field != "") $retval = 0; if ($_nature) if ($_caseSensitve) $compare = strnatcmp($a[$_field], $b[$_field]); else $compare = strnatcasecmp($a[$_field], $b[$_field]); else if ($_caseSensitve) $compare = strcmp($a[$_field], $b[$_field]); else $compare = strcasecmp($a[$_field], $b[$_field]); if ($compare !== 0 && !$_order) $compare = ($compare 0) -1 : 1; if ($compare !== 0) break; return $compare; static function uasort($unsort, $fields) self::$sortfields = $fields; $sorted = $unsort; uasort($sorted, array('uasortEngine', 'uasort_callback')); return $sorted;}使用范例如下:require_once('class.ArraySortUtil.php');// declare test data$assetData[] = array("id" = 1, "category"= "Hardware", "subcategory"= "Personal Computer", "supplier" = "DELL", "particular"= "Vostro 1320", "purchase_price"= 2300, "other_charges"= 500);$assetData[] = array("id" = 2, "category"= "Hardware", "subcategory"= "Personal Computer", "supplier" = "DELL", "particular"= "Vostro 1420", "purchase_price"= 2500, "other_charges"= $assetData[] = array("id" = 3, "category"= "Hardware", "subcategory"= "Laptop", "supplier" = "DELL", "particular"= "Vostro 1520", "purchase_price"= 4500, "other_charges"= 100);$assetData[] = array("id" = 4, "category"= "Hardware", "subcategory"= "Laptop", "supplier" = "Acer", "particular"= "Apire One", "purchase_price"= 2500, "other_charges"= 200);$assetData[] = array("id" = 5, "category"= "Furniture", "subcategory"= "Table", "supplier" = "CHEN", "particular"= "Manager Table", "purchase_price"= 1000, "other_charges"= $assetData[] = array("id" = 6, "category"= "Furniture", "subcategory"= "Table", "supplier" = "CHEN", "particular"= "Staff Table", "purchase_price"= 500, "other_charges"= $assetData[] = array("id" = 7, "category"= "Furniture", "subcategory"= "Chair", "supplier" = "CHEN", "particular"= "Staff Chair", "purchase_price"= 500, "other_charges"= $sorted = ArraySortUtil::multisort($assetData, array( array("field"= "category"), array("field"= "subcategory", "order" = true) // descecho " h1 multisort:result /h1 echo " pre print_r($sorted);echo " /pre $sorted = ArraySortUtil::uasort($assetData, array( array("field"= "category"), array("field"= "subcategory", "order" = true) // descecho " h1 uasort:result /h1 echo " pre print_r($sorted);echo " /pre 希望本文所述對大家的php程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔东| 郓城县| 卓尼县| 邵武市| 石泉县| 金湖县| 利辛县| 喀什市| 明光市| 金川县| 临漳县| 长宁区| 墨竹工卡县| 安溪县| 平塘县| 洛隆县| 南雄市| 蓝山县| 呼和浩特市| 丰镇市| 高雄县| 汉寿县| 温宿县| 秦皇岛市| 江永县| 四川省| 邯郸县| 无锡市| 开化县| 丹江口市| 澳门| 赫章县| 宁阳县| 深圳市| 太仓市| 宁明县| 泗洪县| 郸城县| 华坪县| 名山县| 南汇区|