php数组(十六) array_unique
array_unique — 移除数组中重复的值
array_unique(array
$array
, int $sort_flags
= SORT_STRING): arrayarray_unique() 接受 array
作为输入并返回没有重复值的新数组。
注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array
中同一个值的第一个出现的键名会被保留。
参数:
array
- 输入的数组。
sort_flags
- 第二个可选参数
sort_flags
可用于修改排序行为:
排序类型标记:
SORT_REGULAR
- 按照通常方法比较(不修改类型)SORT_NUMERIC
- 按照数字形式比较SORT_STRING
- 按照字符串形式比较SORT_LOCALE_STRING
- 根据当前的本地化设置,按照字符串比较。
1、首先对值进行排序,保留值出现的对应的第一个key
<?php $input = array("a" => "green", "red", "b" => "green", "blue", "red"); $result = array_unique($input); print_r($result); ?>
输出:blue出现在了red之后
Array ( [a] => green [0] => red [1] => blue )
2、值包括字符串”4“和数值4,去重时,哪个在前保留哪个
<?php $input = array("4", 4, 4, 3, "3", "3", 0, ""); $result = array_unique($input); var_dump($result); ?>
输出:
array(4) { [0]=> string(1) "4" [3]=> int(3) [6]=> int(0) [7]=> string(0) "" }
3、按照不同的形式比较
<?php $input = array("b", 0, ""); echo "normal"; $result = array_unique($input, SORT_REGULAR); // 0 == “” var_dump($result); echo "numeric"; var_dump(intval("b")); $result = array_unique($input, SORT_NUMERIC); // b == 0 var_dump($result); echo "string"; $result = array_unique($input, SORT_STRING); //保留所有 var_dump($result); ?>
输出:
normal array(2) { [0]=> string(1) "b" [2]=> string(0) "" } numeric int(0) array(1) { [0]=> string(1) "b" } string array(3) { [0]=> string(1) "b" [1]=> int(0) [2]=> string(0) "" }
posted on 2021-08-09 20:18 1450811640 阅读(48) 评论(0) 编辑 收藏 举报