• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

php数组内元素不重复怎么判断

武飞扬头像
PHP中文网
帮助36

判断数组内元素重不重复思路:

  • 先去除数组中的重复值,获取去重后的数组

  • 然后获取原数组和去重数组的长度

  • 最后判断两个数组长度是否相等

在PHP中,可以使用array_unique()、count()函数和“==”运算符来实现。

判断步骤:

步骤1:使用array_unique()函数去除数组中的重复值

<?php
header('content-type:text/html;charset=utf-8');   
$arr=array(3,4,2,3,6,4,7,2,8,9,1);
var_dump($arr);
$res=array_unique($arr);
echo "去重后的数组:";
var_dump($res);
?>

学新通技术网

步骤2:使用count()函数获取原数组和去重数组的长度

<?php
header('content-type:text/html;charset=utf-8');   
$arr=array(3,4,2,3,6,4,7,2,8,9,1);
var_dump($arr);
$res=array_unique($arr);
echo "去重后的数组:";
var_dump($res);

$len1=count($arr);
$len2=count($res);
echo "原数组的长度为: $len1 <br>";
echo "去重数组的长度为: $len2 <br><br>";
?>

学新通技术网

步骤3:使用“==”运算符判断两个数组长度是否相等

  • 如果两个数组长度相等,则数组里没有重复值

  • 如果两个数组长度不相等,则表示有元素被去除了,即数组里有重复值。

<?php
header('content-type:text/html;charset=utf-8');   
$arr=array(3,4,2,3,6,4,7,2,8,9,1);
var_dump($arr);
$res=array_unique($arr);
echo "去重后的数组:";
var_dump($res);

$len1=count($arr);
$len2=count($res);
echo "原数组的长度为: $len1 <br>";
echo "去重数组的长度为: $len2 <br><br>";

if($len1==$len2){
	echo "两数组长度相等,数组里有没有相同的元素";
}else{
	echo "两数组长度不相等,数组里有相同的元素";
}
?>

学新通技术网

说明:

array_unique()函数

array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。

语法格式如下:

array array_unique ( array array )

array_unique() 接受 array 作为输入并返回没有重复值的新数组

注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

注: 当且仅当 (string) $elem1 === (string) $elem2 时两个单元被认为相同。就是说,当字符串的表达一样时。第一个单元将被保留。

count() 函数

count() 函数可以统计出数组里所有元素的数量,或对象中的属性个数,其语法格式如下:

count($array , $mode )

参数说明如下:

  • $array:为待统计的数组或对象;
  • $mode:为可选参数,可以省略。
    • 如果省略 $mode 参数,或者将其设置为 COUNT_NORMAL 或者 0,count() 函数将不检测多维数组;
    • 如果 $mode 设置为 COUNT_RECURSIVE 或者 1,count() 函数将递归计算数组中元素的个数,对于计算多维数组的元素个数尤为有用。

sizeof() 函数是 count() 函数的别名,也就是所 sizeof() 函数的功能及使用方法与 count() 函数完全相同。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfcjkc
系列文章
更多 icon
同类精品
更多 icon
继续加载