搜索
首页后端开发php教程PHP输出数组中重名的元素的几种处理方法_PHP

1.可以直接用php的内置函数array_intersect()
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
代码:
复制代码 代码如下:
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>

输出结果:
Array( [a] => green [0] => red)
2.也可以自己写一个算法:
复制代码 代码如下:
function my_array_same($a){
$b = array_unique($a);
$r = array_diff_key($a,$b);
echo "
"; <br>$k=var_dump(array_unique($r)); <br>return $k; <br>} <br>$a = array("red", "green", "pink", "red", "yellow","pink", "red"); <br>$r=my_array_same($a); <br>var_dump(array_unique($r)); <br>?> <br> <br>输出结果: <br>array(2) { <br>[3]=> <br>string(3) "red" <br>[5]=> <br>string(4) "pink" <br>} <br><strong>3.还可以这么写: <br></strong><u>复制代码</u> 代码如下: <br><?php <BR>function my_array_intersect($arr1,$arr2){ <br>for($i=0;$i<count>$temp[]=$arr1[$i]; <br>} <br>for($i=0;$i<count>$temp[]=$arr2[$i]; <br>} <br>sort($temp); <br>$get=array(); <br>for($i=0;$i<count>if($temp[$i]==$temp[$i+1]) <br>$get[]=$temp[$i]; <br>} <br>return $get; <br>} <br>$array1 = array("green", "red", "blue"); <br>$array2 = array("green", "yellow", "red"); <br>echo "<pre class="brush:php;toolbar:false">"; <br>print_r(my_array_intersect($array1, $array2)); <br>echo "<pre class="brush:php;toolbar:false">
";
?>

如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?

思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。

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

上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。

联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在JavaFX中,有哪些不同的路径元素?在JavaFX中,有哪些不同的路径元素?Aug 28, 2023 pm 12:53 PM

javafx.scene.shape包提供了一些类,您可以使用它们绘制各种2D形状,但这些只是原始形状,如直线、圆形、多边形和椭圆形等等...因此,如果您想绘制复杂的自定义形状,您需要使用Path类。Path类Path类使用此表示形状的几何轮廓您可以绘制自定义路径。为了绘制自定义路径,JavaFX提供了各种路径元素,所有这些都可以作为javafx.scene.shape包中的类使用。LineTo-该类表示路径元素line。它可以帮助您从当前坐标到指定(新)坐标绘制一条直线。HlineTo-这是表

C++程序:向数组中添加一个元素C++程序:向数组中添加一个元素Aug 25, 2023 pm 10:29 PM

数组是一种线性顺序数据结构,用于在连续的内存位置中保存同质数据。与其他数据结构一样,数组也必须具备以某种有效方式插入、删除、遍历和更新元素的功能。在C++中,我们的数组是静态的。C++中还提供了一些动态数组结构。对于静态数组,该数组内可能存储Z个元素。到目前为止,我们已经有n个元素了。在本文中,我们将了解如何在C++中在数组末尾插入元素(也称为追加元素)。通过示例理解概念‘this’关键字的使用方式如下GivenarrayA=[10,14,65,85,96,12,35,74,69]Afterin

html5不支持哪些元素html5不支持哪些元素Aug 11, 2023 pm 01:25 PM

html5不支持的元素有纯表现性元素、基于框架的元素、应用程序元素、可替换元素和旧的表单元素。详细介绍:1、纯表现性的元素,如font、center、s、u等,这些元素通常被用于控制文本样式和布局;2、基于框架的元素,如frame、frameset和noframes,这些元素在过去用于创建网页布局和分割窗口;3、应用程序相关的元素,如applet和isinde等等。

jquery怎么移除 元素jquery怎么移除 元素Feb 17, 2023 am 09:49 AM

jquery移除元素的方法:1、通过jQuery remove()方法删除被选元素及其子元素,语法是“$("#div1").remove();”;2、通过jQuery empty()方法删除被选元素的子元素,语法是“$("#div1").empty();”。

如何使用HTML和CSS实现一个具有固定导航菜单的布局如何使用HTML和CSS实现一个具有固定导航菜单的布局Oct 26, 2023 am 11:02 AM

如何使用HTML和CSS实现一个具有固定导航菜单的布局在现代网页设计中,固定导航菜单是常见的布局之一。它可以使导航菜单始终保持在页面顶部或侧边,使用户可以方便地浏览网页内容。本文将介绍如何使用HTML和CSS实现一个具有固定导航菜单的布局,并提供具体的代码示例。首先,需要创建一个HTML结构来呈现网页的内容和导航菜单。以下是一个简单的示例

Python程序用于测试列表中的所有元素是否最大间隔为KPython程序用于测试列表中的所有元素是否最大间隔为KAug 28, 2023 pm 05:25 PM

在许多编程场景中,我们都会遇到需要确定列表中的所有元素是否最多相距K个位置的情况。这个问题出现在各个领域,例如数据分析、序列处理和算法挑战。能够测试和验证这些条件对于确保我们程序的完整性和正确性至关重要。在本文中,我们将探索一个Python程序来有效地解决这个问题。我们将讨论这个概念,提出解决问题的分步方法,并提供工作代码实现。读完本文后,您将清楚地了解如何使用Python检查列表中的元素是否最多相距K个位置。理解问题在深入研究解决方案之前,让我们首先详细了解问题陈述。给定一个元素列表,我们需要

Vue3中的ref函数详解:直接访问组件元素的应用Vue3中的ref函数详解:直接访问组件元素的应用Jun 18, 2023 am 11:51 AM

在Vue3中,ref函数是非常有用的,在开发过程中提供了很方便的操作方式。它允许直接访问Vue组件元素并对其进行操作。ref函数是一个创建一个被响应式地绑定的对象的函数。可以在Vue组件中使用它来引用一个元素或子组件,并从父组件操作这些元素或子组件。ref函数返回一个响应式的对象,并通过该对象暴露指定元素或子组件的引用。因此,可以通过该对象直接访问元素或子组

Java程序:在循环链表中搜索元素Java程序:在循环链表中搜索元素Sep 11, 2023 am 11:45 AM

什么是喜欢列表和循环链表?链表是一种数据结构,其中每个节点都包含两部分,数据和地址路径。这些部分指向下一个节点,该节点始终与先前的节点创建互连。基于此,循环链表是最后一个节点与第一个节点有内部链接,这就是这种类型的链表称为循环链表。在Java环境中,当我们查找元素循环链表时,需要在链表中创建一个临时节点来指向。这样我们还需要声明两个变量。它们是曲目索引和曲目搜索。如果Temp节点在起始点为空,那么遍历列表就很重要,因为此时它不包含任何项目。循环链表的工作原理及其应用?循环链表的工作方法对于循环链

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器