array_multisort() 常用用法总结

原创 PHP技巧
阅读数: 1145 2018年09月27日

<?php


$arr1 = [1, 4, 2, 6, 3, 5];

$arr2 = ['a', 'd', 'b', 'f', 'c', 'e'];


/**

 * $arr1 用于排序的一唯数组

 * SORT_ASC 设置 $arr1 排序方式:SORT_ASC 升序排,SORT_DESC 降序排;,[此参数可以与 SORT_NUMERIC 位置的参数互换,效果一样]

 * SORT_NUMERIC 排序类型标志:(按照什么类型来排序,数字和字符串不一样),[此参数可以与 SORT_ASC 位置的参数互换,效果一样]

 * • SORT_REGULAR - 将项目按照通常方法比较(不修改类型)

 * • SORT_NUMERIC - 按照数字大小比较

 * • SORT_STRING - 按照字符串比较

 * • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。

 * • SORT_NATURAL - 以字符串的"自然排序",类似 natsort()

 * • SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。

 * $arr2 被影响的排序数组,可以多维。此数组 value 顺序根据 $arr1 位置一起变动。

 */

array_multisort($arr1, SORT_ASC, SORT_NUMERIC, $arr2);


var_export($arr1);

var_export($arr2);


/**

 * 结果显示:$arr1 和 $arr2 都排序了

 */


<<<EOD

array (

  0 => 1,

  1 => 2,

  2 => 3,

  3 => 4,

  4 => 5,

  5 => 6,

)array (

  0 => 'a',

  1 => 'b',

  2 => 'c',

  3 => 'd',

  4 => 'e',

  5 => 'f',

)


EOD;



/**

 * 注意:如果 $arr1 值数量与 $arr2 值的数量不一致,直接报错。

 */


使用场景举例:

1、商品大列表里面,根据销量排序、根据价格排序。


phpriji.cn | 网站地图 | 沪ICP备17015433号-1