php 数组排序 array_multisort与uasort的区别

  Example:(简练)

  uasort($arr,create_function('$a, $b','return $a[\'line_num\']<$b[\'line_num\'];'));

  *************函数定义和语法*************

  array_multisort

  (PHP4 >= 4.0b4)

  array_multisort --- 排序复合或多样尺寸的数组

  语法 : bool array_multisort (array ar1 [,mixed arg [,mixed ...[,array...]]])

  说明 :

  Array_multisort( )能用来立刻将数个数组或多样尺寸(multi-dimensional)数组排序。

  输入的数组被看作是表格(table)的栏位,依照列(rows)将它排序,这类似于SQL ORDER BY clause的功能,第一个数组是首要(primary)排序的数组,此数组中的列(值)以下一个输入的数组对照相同的排序。

  这个函数的引数结构是个独特(unusual)位元,但是是可变通的。第一个引数必定是个数组,随后的引数可以是个数组或是下个列表的排序旗标(flag)之一。

  排序顺序旗标 :

  SORT_ASC - 排序成上升的顺序

  SORT_DESC - 排序成下降的顺序

  排序型态旗标 :

  SORT_REGULAR - 正常的比较项目

  SORT_NUMERIC - 以数字比较项目

  SORT_STRING - 看作是字符串来比较项目

  不能使用二个相同型态的旗标指定在各各数组之后,排序的旗标指定在数组引数的后面,只对此数组起作用,其它的将重设为预设的SORT_ASC和SORT_REGULAR在数组引数之后。

  成功则传回true,失败则传回false。

  *************函数定义和语法*************

  uasort()

  函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。

  如果成功则返回 TRUE,否则返回 FALSE。

  该函数主要用于对那些单元顺序很重要的结合数组进行排序。

  语法

  uasort(array,sorttype)参数 描述

  array 必需。规定要排序的数组。

  function 必需。用户自定义的函数。

  函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:

  如果 a = b, 返回 0

  如果 a < b, 返回 1

  如果 a > b, 返回 -1

  PHP uasort() 函数

  定义和用法

  uasort() 函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。

  如果成功则返回 TRUE,否则返回 FALSE。

  该函数主要用于对那些单元顺序很重要的结合数组进行排序。

  语法

  uasort(array,sorttype)参数 描述

  array 必需。规定要排序的数组。

  function 必需。用户自定义的函数。

  函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:

  如果 a = b, 返回 0

  如果 a < b, 返回 1

  如果 a > b, 返回 -1

  例子

  

复制代码 代码如下:

  <?php

  function my_sort($a, $b)

  {

  if ($a == $b) return 0;

  return ($a > $b) ? -1 : 1;

  }

  $people = array("Swanson" => "Joe",

  "Griffin" => "Peter", "Quagmire" => "Glenn",

  "swanson" => "joe", "griffin" => "peter",

  "quagmire" => "glenn");

  uasort($people, "my_sort");

  print_r ($people);

  ?>

  输出:

  

复制代码 代码如下:

  Array

  (

  [griffin] => peter

  [swanson] => joe

  [quagmire] => glenn

  [Griffin] => Peter

  [Swanson] => Joe

  [Quagmire] => Glenn

  )