graze/sort

一组数组排序转换和函数

2.0.1 2014-09-23 17:01 UTC

This package is auto-updated.

Last update: 2024-09-24 05:00:10 UTC


README

sort

主分支构建: Master branch build status

这个库提供了一些有用的函数,用于对大型数组进行排序或比较数组值代价高昂的排序。目的是尽可能提供这些函数,同时保持与PHP内建的usort函数的互操作性。

您可以选择任何您喜欢的安装方式,但我们推荐使用Composer

{
    "require": {
        "graze/sort": "*"
    }
}

文档

<?php

$unsorted = [
    (object) ['foo' => 1, 'bar' => 3],
    (object) ['foo' => 3, 'bar' => 2],
    (object) ['foo' => 2, 'bar' => 1],
    (object) ['foo' => 2, 'bar' => 2],
    (object) ['foo' => 3, 'bar' => 3],
    (object) ['foo' => 1, 'bar' => 1],
    (object) ['foo' => 2, 'bar' => 3],
    (object) ['foo' => 3, 'bar' => 1],
    (object) ['foo' => 1, 'bar' => 2]
];

$foo = function ($v) { return $v->foo; };
$bar = function ($v) { return $v->bar; };

// Using comparison sorting
$sorted = \Graze\Sort\comparison($unsorted, [$foo, $bar]);

// Using schwartzian sorting
$sorted = \Graze\Sort\schwartzian($unsorted, [$foo, $bar]);

// Using comparison sorting with usort
$sorted = $unsorted;
usort($sorted, \Graze\Sort\comparison_fn($unsorted, [$foo, $bar]));