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 阅读(58) 评论(0) 收藏 举报
浙公网安备 33010602011771号