加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php专用数组排序类ArraySortUtil用法实例

发布时间:2020-05-23 23:55:22 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了php专用数组排序类ArraySortUtil用法,实例分析了ArraySortUtil实现数组排序的方法与对应使用技巧,需要的朋友可以参考下

本文实例讲述了php专用数组排序类ArraySortUtil用法。分享给大家供大家参考。具体如下:

$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; } }

使用范例如下:

1,"category"=>"Hardware","subcategory"=>"Personal Computer","supplier" => "DELL","particular"=>"Vostro 1320","purchase_price"=>2300,"other_charges"=>500); $assetData[] = array("id" => 2,"particular"=>"Vostro 1420","purchase_price"=>2500,"other_charges"=>0); $assetData[] = array("id" => 3,"subcategory"=>"Laptop","particular"=>"Vostro 1520","purchase_price"=>4500,"other_charges"=>100); $assetData[] = array("id" => 4,"supplier" => "Acer","particular"=>"Apire One","other_charges"=>200); $assetData[] = array("id" => 5,"category"=>"Furniture","subcategory"=>"Table","supplier" => "CHEN","particular"=>"Manager Table","purchase_price"=>1000,"other_charges"=>0); $assetData[] = array("id" => 6,"particular"=>"Staff Table","purchase_price"=>500,"other_charges"=>0); $assetData[] = array("id" => 7,"subcategory"=>"Chair","particular"=>"Staff Chair","other_charges"=>0); $sorted = ArraySortUtil::multisort($assetData,array( array("field"=>"category"),array("field"=>"subcategory","order" => true) // desc )); echo "

multisort:result

"; echo "
";
 print_r($sorted);
echo "
"; $sorted = ArraySortUtil::uasort($assetData,"order" => true) // desc )); echo "

uasort:result

"; echo "
";
 print_r($sorted);
echo "
";

希望本文所述对大家的php程序设计有所帮助。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读