php语言

php如何去除数组中相同的元素

时间:2022-12-04 16:19:09 php语言 我要投稿
  • 相关推荐

php如何去除数组中相同的元素

  如何去除数组中相同的元素?在php手册中这样写,希望对大家有用,更多内容请关注应届毕业生网!

  array_unique(PHP 4 >= 4.0.1)

  array_unique -- 移除数组中重复的值

  说明

  array array_unique ( array array)

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

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

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

  第一个单元将被保留。

  例子 1. array_unique() 例子

  [php]

  $input = array ("a" => "green", "red", "b" => "green", "blue", "red");

  $result = array_unique ($input);

  print_r($result);

  ?>

  [/php]

  【拓展阅读】PHP必须知道的容易出错的小细节

  注意echo和print的区别

  PHP中echo和print都是输出的作用,但是两者之间还是有细微的差别。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行$r = print "Hello World"; 变量$r的值将为1。而且代码中echo语句的运行效率要略快于print语句。

  注意空字符串('')和NULL的区别

  PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,前者是string,而后者是NULL,可见字符串('')、NULL值相等但类型不等。

  分清==(等于)和===(全等于)的区别

  两者都属于比较运算符,==(等于)只比较值是否相等,而===(全等于)则不但比较值是否相等,还会比较类型是否相等,它更为严格。

  分清include与require的区别

  include()与require()的功能也基本相同,但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php。而require()则和include()不同,不管$a取何值,下面的代码都会把文件a.php包含,比如:

  在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行。但是,require语句会提示一个致命错误。

  注意isset和 empty的区别

  empty是判断一个变量是否为“空”,而isset则是判断一个变量是否已经被设置。

  分清self :: 和 this--> 的区别

  在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(常量)或者static(静态属性),那么就必须使用域操作符::,而如果被引用的变量或者方法没有被声明成const或者static,那么就使用指向操作符->。

  foreach循环后留下悬挂指针

  这里有个问题很多人会迷糊。循环结束后,$value并未销毁,$value其实是数组中最后一个元素的引用,这样在后续对$value的使用中,如果不知道这一点,会引发一些莫名奇妙的错误:)看看下面这段代码:

  上面代码的运行结果如下:

  1,2,3

  1,2,3

  1,2,2

  你猜对了吗?为什么是这个结果呢?

  我们来分析下。第一个循环过后,$value是数组中最后一个元素的引用。第二个循环开始:

  第一步:复制$arr[0]到$value(注意此时$value是$arr[2]的引用),这时数组变成[1,2,1]

  第二步:复制$arr[1]到$value,这时数组变成[1,2,2]

  第三步:复制$arr[2]到$value,这时数组变成[1,2,2]

  综上,最终结果就是1,2,2

  避免这种错误最好的办法就是在循环后立即用unset函数销毁变量:

  忽略Unicode/UTF-8问题

  php编程中,在处理非ascii字符时,会遇到一些问题,要很小心的去对待,要不然就会错误遍地。举个简单的例子,strlen($name),如果$name包含非ascii字符,那结果就有些出乎意料。在此给出一些建议,尽量避免此类问题:

  最好使用mb_*函数来处理字符串,避免使用老的字符串处理函数。这里要确保PHP的“multibyte”扩展已开启。

  数据库和表最好使用unicode编码。

  知道json_code()函数会转换非ascii字符,但serialize()函数不会。

  php代码源文件最好使用不含bom的utf-8格式。

【php如何去除数组中相同的元素】相关文章:

如何去除word中多余的空格及空行04-19

PHP判断数组是否为空的5大方法01-13

如何学习好php语言08-31

PHP中的trait是什么04-12

PHP如何导入和导出CSV文件10-14

PHP中的Division by zero报错处理技巧02-23

什么是C语言数组04-15

excel2010如何去除重复值10-18

PHP常量介绍04-21

PHP变量介绍02-28