Unique

年轻付出代码,array_multisort()技能得到

  在工作中,遇到二维数组排序的问题,然后我自己手撸,结果发现怎么调试都出错,更何况效率的问题。最后在别人的帮助下,找到了过往使用的工具方法,因此就去翻看array_multisoort()函数说明,同时发现,公司曾经的封装略显不足,因此我运用之前封装的_array_column函数,成功为二维数组排序,代码如下:

function _array_column($array, $key)
{
    if (function_exists('array_column')) {
        return array_column($array, $key);
    }
    $result = array();
    foreach ($array as $val) {
        if (array_key_exists($key, $val)) {
            $result[] = $val[$key];
        }
    }
    return $result;
}

function _array_multisort($array, $key)
{
    $column = _array_column($array, $key);
    $result = $array ? $array : false;
    if ($column && $result) {
        array_multisort($column, $result);
    }
    return $result;
}

$array = array(
    array(
        'name' => '小明',
        'age' => 19,
        'birth' => '1996-02-23'
    ),
    array(
        'name' => '大明',
        'age' => 20,
        'birth' => '1995-01-01'
    ) 
);

//调用
_array_multisort($array, 'birth');

转载需经作者允许并注明出处(http://blog.hiunique.com/php/90.html)
来自:Unique

添加评论