去重

array_unique — 移除数组中重复的值
语法

array array_unique( array $array[, int $sort_flags = SORT_STRING] )

描述
  • array_unique() 接受 array 作为输入并返回没有重复值的新数组
  • 注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
  • 当且仅当 (string) $elem1 === (string) $elem2 时两个单元被认为相同。就是说,当字符串的表达一样时。 第一个单元将被保留
参数
参数 描述
array 输入的数组
sort_flags 1.SORT_REGULAR - 正常比较(不改变类型),即以ASCII码排序比较。2.SORT_NUMERIC - 以数字的形式比较。3.SORT_STRING - 以字符串的形式比较(默认值)。4.SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较(基本不用)
返回值
  • 返回去重后的数组
举例
// 示例1-SORT_REGULAR - 正常比较(不改变类型)
$a = ["a" => "green", "red", "b" => "green", "blue", "red", 1, '1'];
$result = array_unique($a,SORT_REGULAR);
print_r($result); 
// 结果
Array
(
    [a] => green
    [0] => red
    [1] => blue
    [3] => 1
)
// 示例2-SORT_NUMERIC - 以数字的形式比较
// 字符串数字化,转化为0
var_dump((double)('green')); // float(0)
$a = ["a" => "green", "red", "b" => "green", "blue", "red", 1, '1'];
$result = array_unique($a, SORT_NUMERIC);
print_r($result);
// 结果
Array
(
    [a] => green
    [3] => 1
)
// 示例3-纯数字去重
$a = ["a" => "1", "1", "2" => "2", "3", "4", 5, '6'];
$result = array_unique($a, SORT_NUMERIC);
print_r($result);
// 结果
Array
(
    [a] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
)
// 示例4-SORT_STRING - 以字符串的形式比较
$a = ["a" => "green", "red", "b" => "green", "blue", "red", 1, '1'];
$result = array_unique($a, SORT_STRING);
print_r($result);
// 结果
Array
(
    [a] => green
    [0] => red
    [1] => blue
    [3] => 1
)

results matching ""

    No results matching ""