/*
* 数组忽略大小写去重
* $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);
/*
输出:
array(3) {
[0]=>
array(3) {
["id"]=>
int(3809)
["first_name"]=>
string(4) "Mark"
["last_name"]=>
string(10) "Zuckerberg"
}
[1]=>
array(3) {
["id"]=>
int(5698)
["first_name"]=>
string(4) "Bill"
["last_name"]=>
string(5) "Gates"
}
[2]=>
array(3) {
["id"]=>
int(4767)
["first_name"]=>
string(5) "Steve"
["last_name"]=>
string(4) "Aobs"
}
}
*/
备案号:浙ICP备12035708号-4