1. 简介
多维数组是指含有两个或两个以上的key-value键值对的数组。在PHP开发中,多维数组经常被使用,如果我们需要对多维数组进行去重操作,则可以使用PHP提供的array_unique()函数来实现。
2. PHP函数array_unique()
2.1 功能介绍
在PHP中,array_unique()是一个用于去除数组中重复元素的函数,它能够比较不同类型的值,但只保留第一个遇到的值,移除数组中所有重复的值。此函数比较的规则是根据值的类型进行比较,因此,如果需要根据多个值进行比较,则需要对多维数组进行遍历,然后使用array_unique()函数进行去重操作。
2.2 语法格式
array_unique(array $array, int $flags = SORT_STRING):array
参数说明:
$array:必填,需要去重的数组。
$flags:排序类型,可选,可以是以下常量值之一:
SORT_STRING - 按照字符串顺序排列(默认)。
SORT_NUMERIC - 按照数值顺序排列。
SORT_REGULAR - 按照通常方法比较。
2.3 示例演示
以下示例演示了如何使用array_unique()函数去除数组中重复的值:
$input = array("a", "b", "c", "b", "a");
$result = array_unique($input);
print_r($result);
// 输出结果为:
Array
(
[0] => a
[1] => b
[2] => c
)
2.4 多维数组去重
以下示例演示了如何使用array_unique()函数对多维数组进行去重操作:
$array = array(
array("name" => "xiaoming", "age" => 15),
array("name" => "xiaohong", "age" => 16),
array("name" => "xiaohua", "age" => 16),
array("name" => "xiaohong", "age" => 16)
);
$newArray = unique_multidim_array($array, "name");
function unique_multidim_array($array, $key) {
$temp_array = array();
foreach ($array as &$v) {
if (!isset($temp_array[$v[$key]]))
$temp_array[$v[$key]] =& $v;
}
$array = array_values($temp_array);
return $array;
}
print_r($newArray);
// 输出结果为:
Array
(
[0] => Array
(
[name] => xiaoming
[age] => 15
)
[1] => Array
(
[name] => xiaohong
[age] => 16
)
[2] => Array
(
[name] => xiaohua
[age] => 16
)
)
3. 总结
PHP中的array_unique()函数是一个非常实用的函数,它能够对数组进行去重操作。虽然它不能直接对多维数组进行去重操作,但通过遍历多维数组的方式,我们可以使用此函数来对多维数组进行去重操作,从而提高PHP编程的效率。