gpt4 book ai didi

PHP输出数组中重名的元素的几种处理方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 31 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP输出数组中重名的元素的几种处理方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1.可以直接用php的内置函数array_intersect()  array array_intersect ( array $array1 , array $array2 [, array $ ... ] )  array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。  代码:  。

复制代码代码如下

<?php  $array1 = array("a" => "green", "red", "blue");  $array2 = array("b" => "green", "yellow", "red");  $result = array_intersect($array1, $array2);  ?>  。

输出结果:  Array( [a] => green [0] => red)  2.也可以自己写一个算法:  。

复制代码代码如下

<?php  function my_array_same($a){  $b = array_unique($a);  $r = array_diff_key($a,$b);  echo "<pre>";  $k=var_dump(array_unique($r));  return $k;  }  $a = array("red", "green", "pink", "red", "yellow","pink", "red");  $r=my_array_same($a);  var_dump(array_unique($r));  ?>  。

输出结果:  array(2) {  [3]=>  string(3) "red"  [5]=>  string(4) "pink"  }  3.还可以这么写:  。

复制代码代码如下

<?php  function my_array_intersect($arr1,$arr2){  for($i=0;$i<count($arr1);$i++){  $temp[]=$arr1[$i];  }  for($i=0;$i<count($arr1);$i++){  $temp[]=$arr2[$i];  }  sort($temp);  $get=array();  for($i=0;$i<count($temp);$i++){  if($temp[$i]==$temp[$i+1])  $get[]=$temp[$i];  }  return $get;  }  $array1 = array("green", "red", "blue");  $array2 = array("green", "yellow", "red");  echo "<pre>";  print_r(my_array_intersect($array1, $array2));  echo "<pre/>";  ?>  。

如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?  思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。  代码:  。

复制代码代码如下

function toarr($arr){ //对数组进行递归,以字符串形式返回  foreach ($arr as $k=>$v){  if (!is_array($v)) {  $str.=$v." ";  }  else{  $str.=toarr($v);  }  }  return $str;  }/*递归函数结束*/  。

上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。  联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现.

最后此篇关于PHP输出数组中重名的元素的几种处理方法的文章就讲到这里了,如果你想了解更多关于PHP输出数组中重名的元素的几种处理方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com