【原】PHP对二维数组排序

/ 0评 / 0

在项目开发中经常会用到对二维数组的排序,用到的方法是首先将要排序的字段取出为一维数组,然后使用array_multisort()函数将数组排序车成合适的数组。话不多说,先上代码。

/**
 * 二维数组排序
 * @param array $data 要排序的数组
 * @param string $key 要排序的字段
 * @param int $sort 排序类型 SORT_ASC SORT_DESC (默认)
 * @param int $sortType 排序类型
 * @return array 排序后的数组
 */
function arraySort($data, $key, $sort = SORT_DESC,$sortType)
{
    $keysValue = array_column($data,$key);//将要排序的字段取出为一维数组
    array_multisort($keysValue, $sort, $sortType, $data);//对数组排序
    return $data;
}

这里对array_column()函数和array_multisort()函数做说明

1:array_column()

语法:

array_column(array,columnKey,indexKey);

参数说明:

array:必须,要使用的多维数组

columnKey:必须,需要返回的列 的key,可以使索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数为null时,可以配合indexKey参数来重置数组的键。

indexKey:可选,返回数组的索引/键的列。

2:array_multisort() 语法:

array_multisort(array1,sortOrder,sortType,array2,array3...)

参数说明:

array1:必需,后面的array2,array3…根据此数组的键排序

sortOrder:可选,排列顺序。默认是SORT_ASC是正序,SORT_DESC 是倒序

sortType:可选,排序类型。

array2: 可选,数组。

array3: 可选,数组。

注意:对原数组array2,array3… 排序后的数组是仍然是array2,array3…

以上是对于二维数组转一维数组的一些技巧和说明,转载请注明出处。 及时了解关于PHP的一些技术文章请关注微信公众号:文艺的爱码士