精华内容
下载资源
问答
  • PHP中自带了大量数组排序函数.| 函数名 | 函数意义 || --------- |:-------------- : | ------- :||sort()函数 | 对数组单元从低到高进行排 序,如果有键名会改变键名 ||rsort()函数 | 对数组单元从高到低进行...

    在PHP中自带了大量的数组排序函数.

    | 函数名 | 函数意义 |

    | --------- |:-------------- : | ------- :|

    |sort()函数 | 对数组单元从低到高进行排 序,如果有键名会改变键名 |

    |rsort()函数 | 对数组单元从高到低进行排序, 会改变键名 |

    | asort()函数 | 对数组单元从低到高进行排序并保持索引关系,即键值键名对应|

    |arsort() 函数 |对数组单元从高到低进行排序并保持索引关系|

    |ksort() 函数 | 对数组单元按照键名从低到高进行排序 |

    |krsort() 函数 | 对数组单元按照键名从高到低进行排序 |

    a(association)前缀表示以键值关联

    k(key)前缀表示以键名关联

    r(reverse)前缀表示以反方向排

    $arrSort = array('Ben' => '80', 'Peter' => '60', 'Joe' => '30');

    foreach ($arrSort as $key => $value)

    { echo 'key = '.$key.', value = '.$value.'
    ';}

    //key = Ben, value = 80//key = Peter, value = 60//key = Joe, value = 30

    $arrSort这种数组为关联数组, 有键名键值.如果键名为数字, 即为数字数组.

    sort()排序

    sort($arrSort);

    foreach ($arrSort as $key => $value)

    { echo 'key = '.$key.', value = '.$value.'
    ';}

    //key = 0, value = 30

    //key = 1, value = 60

    //key = 2, value = 80

    rsort()排序

    rsort($arrSort);

    foreach ($arrSort as $key => $value)

    { echo "key= ".$key.",value= ".$value."
    ";

    }//key= 0,value= 80//key= 1,value= 60//key= 2,value= 30

    ksort()排序

    ksort($arrSort);

    foreach ($arrSort as $key => $value) {

    echo "key= ".$key.",value= ".$value."
    ";

    }//key= Ben,value= 80//key= Joe,value= 30//key= Peter,value= 60

    krsort()排序

    krsort($arrSort);

    foreach ($arrSort as $key => $value) {

    echo "key= ".$key.",value= ".$value."
    ";

    }//key= Peter,value= 60//key= Joe,value= 30//key= Ben,value= 80

    asort()排序

    asort($arrSort);

    foreach ($arrSort as $key => $value)

    { echo "key= ".$key.",value= ".$value."
    ";

    }//key= Joe,value= 30//key= Peter,value= 60//key= Ben,value= 80

    arsort()排序

    arsort($arrSort);

    foreach ($arrSort as $key => $value) {

    echo "key= ".$key.",value= ".$value."
    ";

    }

    //key= Ben,value= 80//key= Peter,value= 60//key= Joe,value= 30

    展开全文
  • 注:本函数为数组中的单元赋予新的键名。原有的键名将被删除。如果成功则返回 TRUE,否则返回 FALSE。提示:请使用 rsort() 函数对索引数组进行降序排序。语法(推荐学习:PHP视频教程)sort(array,sortingtype);array...

    6937841511e48d59b51e970b99f02bfd.png

    PHP sort() 函数

    定义和用法

    sort() 函数对索引数组进行升序排序。

    注:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

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

    提示:请使用 rsort() 函数对索引数组进行降序排序。

    语法(推荐学习:PHP视频教程)sort(array,sortingtype);

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

    sortingtype,可选。规定如何比较数组的元素/项目。

    可能的值:

    0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)

    1 = SORT_NUMERIC - 把每一项作为数字来处理。

    2 = SORT_STRING - 把每一项作为字符串来处理。

    3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

    4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。

    5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

    实例

    对数组 $cars 中的元素按字母进行升序排序:

    $cars=array("Volvo","BMW","Toyota");

    sort($cars);

    $clength=count($cars);

    for($x=0;$x

    {

    echo $cars[$x];

    echo "
    ";

    }

    ?>

    展开全文
  • 主要介绍了php-redis中的sort排序函数总结,本文讲解了了按字母排序、排序取部分数据、使用外部key进行排序等排序方法,同时给出代码实例,需要的朋友可以参考下
  • PHP中有非常方便对数组进行重新排序方法——asort,关于asort的使用方法可以看 这里 。但是asort对含有中文key数组进行排序时,有时候并不是按照字母顺序。这主要是编码问题,如果编码为UTF-8,则不会按照字母...
  • sort() 函数用于对数组单元从低到高进行排序。  rsort() 函数用于对数组单元从高到低进行排序。  asort() 函数用于对数组单元从低到... 注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅
  • 本文主要和大家分析JS中sort方法使用及其原理,需要朋友可以参考下,希望能帮助到大家。下面跟随小编一起来看一下吧。原生JS提供了两个用来重排序方法:reverse()和sort(),reverse()没什么好说,就是直接...

    本文主要和大家分析JS中sort方法的使用及其原理,需要的朋友可以参考下,希望能帮助到大家。下面跟随小编一起来看一下吧。

    原生JS中提供了两个用来重排序的方法:reverse()和sort(),reverse()没什么好说的,就是直接使数组反转,例如下面的例子:var arr = [1, 2, 3, 4, 5, -1, -10, 9, 0];

    arr.reverse();

    alert(arr);

    //0, 9, -10, -1, 5, 4, 3, 2, 1

    运行结果就是数组的逆序,没什么好说的。

    下面来详细说一下sort()这个方法:

    sort方法可以直接调用,不传入任何参数,也可以传入一个比较函数作为参数,关于比较函数待会再解释,下面先说不传参的时候。

    当不传入参数的时候,sort()方法会调用默认的排序的方式,即先调用每个数组项的toString()转型方法,然后按照字符串Unicode编码顺序来对字符串进行排序,例如下面的例子:var arr = [1, 2, 3, 15, 22, 33];

    arr.sort();

    alert(arr);

    //1, 15, 2, 22, 3, 33

    输出结果可能和想象中的不一样,但是这是按照这些数字在Unicode字符集中的顺序进行排序的。

    那么怎么才能让他按照我们的想法对数组进行排序呢?没错,就是传入一个函数作为参数,来指明排序方式。(注意,参数必须是函数,不能是其他的)

    这个函数可以像下面这样写:function cmp (value1, value2) {

    if (value1 < value2) {

    return 1;

    }

    else if (value1 > value2) {

    return -1;

    } else {

    return 0;

    }

    }

    还是解释一下这个函数,如果value2大于value1,那么就会返回1,即true,那么就会执行交换,这样就会把较大的value2放在前面,则较小value1就放在后面。这样整体排下来就会是一个从大到小的排序。下面是一个实际应用的例子:var arr = [1, 2, 3, 15, 22, 33, 44, 55, 0, -1, 22, 55];

    function cmp (value1, value2) {

    if (value1 < value2) {

    return 1;

    }

    else if (value1 > value2) {

    return -1;

    } else {

    return 0;

    }

    }

    arr.sort(cmp);

    alert(arr);

    运行结果:

    60ab9bb7fddd24b84662fe978bd87c4c.png

    还有一种简化的cmp函数的书写方法:function cmp (a, b) {

    return b - a;

    }

    这个函数和上面的函数作用是相同的,当b比较大的时候,就会返回一个大于等于1的数,即true,这样就会执行交换,总体结果也是一种降序排序,可以自己写代码试一下。

    那么,现在实现了对数组中的数字进行排序,那么怎么实现根据数组对象中某个属性值进行排序呢?

    这里就要用到JS函数的一个特点,就是用函数作为返回值,可以嵌套一层函数用来接收对象属性名,表示按照哪个属性进行排序:

    var arr = [

    { name: 'guo', age: 20},

    { name: 'yu', age: 19},

    { name: 'liu', age: 15}

    ];

    function cmp (property) {

    return function (a, b){

    var value1 = a[property];

    var value2 = b[property];

    return value1 - value2;

    }

    }

    arr.sort(cmp('age'));

    for (var i=0; i<3; i++) {

    alert(arr[i].name);

    }

    //liu, yu, guo

    有些人可能现在的cmp函数不太理解,那么可以调试一下这段代码看看究竟发生了什么:

    17b6799cdfbf126829f80dac1118d1e9.png

    可以看到,cmp函数中的property只是起到了标识的作用,而实际上arr中的数据是传递给了内部的function,然后由内部的function的参数来根据property来取得需要进行比较的值进行比较。

    展开全文
  • PHP中有非常方便对数组进行重新排序方法——asort,关于asort的使用方法可以看 这里 。但是asort对含有中文key数组进行排序时,有时候并不是按照字母顺序。这主要是编码问题,如果编码为UTF-8,则不会按照字母...

    PHP中有非常方便的对数组进行重新排序的方法——asort,关于asort的使用方法可以看 这里 。但是asort对含有中文key的数组进行排序时,有时候并不是按照字母顺序。这主要是编码问题,如果编码为UTF-8,则不会按照字母顺序来排,解决方法是先转换成GBK编码,排序完再转回UTF-8.

    示例:有一个数组$pass,结构类似为

    Array

    (

    [0] => stdClass Object

    (

    [username] => 张三

    [password] => DQ9uqQW2+UudOsZpQMnyvGG9L+RHZB6LRzBVDvAEL9uOBNf2zTWUnykhZFjhbzCH+LrSslRx9eSqU/n3gSLSUA==

    )

    [1] => stdClass Object

    (

    [username] => 李四

    [password] => 2P/3j50ibk1BYmjHL+7/tt0d6LuOQMN9m8klXJCZbcajQtH5749jFTtH17WxiBZ9p425b4KIV/Xdv/7Bu4pJAQ==

    )

    [2] => stdClass Object

    (

    [username] => 王五

    [password] => caq8lq0l6uxJPRx+sCBsBFUojSF+ox98gwO6c/AquXQ/y/aj/l/ziEGsXRSV+olcK7iKOJJ4IZZvX8DMPWZRRA==

    )

    [3] => stdClass Object

    (

    [username] => 赵六

    [password] => taXp4jX0vO3VoFLyANfGrSjzy76WQQHMnzYAN9CyI20uKxLFMScXrFR3P525eImy0pG5zk8btBJoS/RyMxzJGQ==

    )

    )

    使用下面的代码,将会把这个数组按照username的拼音排序。

    foreach ($pass as $key) {

    $key->username = iconv("UTF-8", "GBK", $key->username);

    }

    asort( $pass );

    foreach ($pass as $key) {

    $key->username = iconv("GBK", "UTF-8", $key->username);

    }

    展开全文
  • PHP的内置排序语法糖。 例子 基本分类功能 use Tuck \ Sort \ Sort ; Sort :: values ([ 'foo' , 'bar' , 'baz' ]); // returns ['bar', 'baz', 'foo'] Sort :: keys ([ 'x' => 'foo' , 'm' => 'bar' ]); // ...
  • php中自带了大量了数组排序函数,下面我们一一来介绍一下关于php数组排序用法吧。  sort() 函数用于对数组单元从低到高进行排序。  rsort() 函数用于对数组单元从高到低进行排序。  asort() 函数用于对数...
  • 基于本地意思就是对于不同系统语言环境情况下,比如法语字幕有声调,往往在默认排序上会有些问题,也就是会出现和理论不一致结果,在这种情况下我们用sort($array,SORT_LOCALE_STRING);可以解决此类问题
  • php编程有时候会需要用上排序,在这里简单地整理一下集中sort的区别,方便查询  sort() 函数用于对数组单元从低到高进行排序。 rsort() 函数用于对数组单元从高到低进行排序。 asort() 函数用于对数组单元从低...
  • //zend框架用于打印对象//关于逆向一些问题 $fruits = array("lemon", "orange", "banana", "apple"); $fruits = array('o1','sam8','look9','false5','tu7','laske6','doum2','ak3','ye4')
  • 在本例, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。  sort() 函数用于对数组单元从低到高进行排序。  rsort() 函数用于对数组单元从高到低进行排序。  asort() 函数...
  • sort() 函数用于对数组单元从低到高进行排序。  rsort() 函数用于对数组单元从高到低进行排序。  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。  arsort() 函数用于对数组单元从高到低进行排序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,416
精华内容 566
关键字:

php中的sort