PHP 数组去重与PHP数组排序方法
PHP 数组去重
PHP数组里如果有重复的值,想去除重复的值,可以使用PHP 数组去重函数array_unique。array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。
一维数组去重
<?php
$a=array("a"=>"red","b"=>"green","c"=>"red");
array_unique($a,SORT_STRING);
?>
sortingtype参数可选。规定排序类型。可能的值:
- SORT_STRING - 默认。把每一项作为字符串来处理。
- SORT_REGULAR - 把每一项按常规顺序排列(Standard ASCII,不改变类型)。
- SORT_NUMERIC - 把每一项作为数字来处理。
- SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
二维数组去重
//先定义处理函数
function assoc_unique($arr, $key) {
$tmp_arr = array();
foreach ($arr as $k => $v) {
if (in_array($v[$key], $tmp_arr)) {
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr);
return $arr;
}
//测试数组
$aa = Array(
Array(0 => 1,1 => 'c'),
Array(0 => 2,1 => 'c'),
Array(0 => 3,1 => 'q'),
Array(0 => 1,1 => 'B'),
Array(0 => 2,1 => 'd'),
Array(0 => 3,1 => 'd'),
Array(0 => 4,1 => 'a'),
Array(0 => 6,1 => 'B'),
Array(0 => 6,1 => 'd')
);
//语法:assoc_unique(数组,去重健值);
echo print_r(assoc_unique($aa,0));
PHP数组排序
PHP数组排序可以将PHP数组里的值按照某个字段进行排序。
//数组排序函数封装
function arraySequence($array, $field, $sort = 'SORT_DESC') {
$arrSort = array();
foreach ($array as $uniqid => $row) {
foreach ($row as $key => $value) {
$arrSort[$key][$uniqid] = $value;
}
}
array_multisort($arrSort[$field], constant($sort), $array);
return $array;
}
$varszhuzhan = arraySequence($varszhuzhan,'post_date');//post_date为数组里的某个键