数组忽略大小写去重

/*
* 数组忽略大小写去重
* $array 为数组 
*/
function array_iunique($array){
    //array_intersect_key() 函数用于比较两个(或更多个)数组的键名 ,并返回交集。
    //array_map  为数组的每个元素应用回调函数
    return array_intersect_key($array,array_unique(array_map('mb_strtolower',$array))); 
}
//演示
$array = [0=>'abc',1=>'Abc',2=>'2DeF',3=>'2dEf'];
var_dump(array_iunique($array));

/*
输出:
array(2) { [0]=> string(3) "abc" [2]=> string(4) "2DeF" }
*/

二维数组按指定列排序

//php版本5.5以后自带array_column
if (!function_exists('array_column'))
{
    function array_column($input, $column_key=null, $index_key=null)
    {
        $result = array();
        $i = 0;
        foreach ($input as $v)
        {
            $k = $index_key === null || !isset($v[$index_key]) ? $i++ : $v[$index_key];
            $result[$k] = $column_key === null ? $v : (isset($v[$column_key]) ? $v[$column_key] : null);
        }
        return $result;
    }
}


$data = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Aobs',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Mark',
    'last_name' => 'Zuckerberg',
  )
);

//根据字段last_name对数组$data进行降序排列
$last_names = array_column($data,'last_name');
array_multisort($last_names,SORT_DESC,$data);

var_dump($data);