您的位置:

php取数组交集,php遍历输出数组

本文目录一览:

PHP数组的几个操作,求并集,交集,差集,数组

PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重

在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff().

计算数组的合并 array_merge与“+”的区别

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的),如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引.代码如下:

$a = array(1 = 'a', 'b', 'c');

$b = array(1 = 'aa', 2, 'c');

$union = array_merge($a, $b);

$plus = $a + $b;

print_r($union);

print_r($plus);

//结果依次为:

Array

{

[0]= a

[1]= b

[2]= c

[3]= aa

[4]= 2

[5]= c

}

Array

(

[1] = a

[2] = b

[3] = c

)

要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:

$a2 = array('str' = 'a', 'b', 'c');

$b2 = array('str' = 'aa', 2, 'c');

$union2 = array_merge($a2, $b2);

$plus2 = $a2 + $b2;

print_r($union2);

print_r($plus2);

//结果依次为:

Array

(

[str] = aa

[0] = b

[1] = c

[2] = 2

[3] = c

)

Array

(

[str] = a

[0] = b

[1] = c

)

注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉

计算数组的交集

array_intersect() 函数返回两个或多个数组的交集数组,结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变,注释:仅有值用于比较,代码如下:

$a = array('jpg','png','gif','bmp');

$b = array('JPG','txt','docx','bmp');

$intersection = array_intersect($a, $b);

还可以通过函数,获取自己想要的(比如元素不区分大小写),代码如下:

$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));

print_r($intersection);

print_r($intersection2);

//结果依次为:

Array

(

[3] = bmp

)

Array (

[0] = jpg

[3] = bmp

)

计算数组的差集,代码如下:

$old = array('jpg','png','gif','bmp');

$new = array('JPG','txt','docx','bmp');

$difference = array_diff($old, $new);

注:返回结果的元素包含$old的元素,不包括$new的元素

print_r($difference);

结果为:

Array

(

[0] = jpg

[1] = png

[2] = gif

)

也可以用函数先进行处理,再计算差集

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值,在返回的数组中,键名保持不变。

语法:array_diff(array1,array2,array3...)

代码如下:

$difference = array_diff(array_map('strtolower',$old),

array_map('strtolower',$new));

数组转换为字符串:

?php

$arr = array('Hello','World!','I','love','Shanghai!');

echo implode(" ",$arr);

?

字符串转换为数组:

?php

$str="1432532 ,4444";

$arr = explode(",",$str);

echo count($arr)."/br";

print_r($arr);

?

数组元素值去重

?php

$a=array("a"="red","b"="green","c"="red");

print_r(

array_unique($a)

);

?

针对有空格的字符串转换成无空格的字符串

?php

$str="1432532 ,67878";

$arr = explode(",",$str);

//echo count($arr)."/br";

$str_u='';

for($i=0;$icount($arr);$i++)

{

$str_u .=trim($arr[$i]).',';

}

echo $str_u;

?

php带索引检查计算数组的交集?

array_intersect_assoc

(PHP 4 = 4.3.0, PHP 5, PHP 7)

array_intersect_assoc — 带索引检查计算数组的交集

说明

array_intersect_assoc ( array $array1 , array $array2 [, array $... ] ) : array

array_intersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。

参数

array1

要检查的主值。

array2

要比较的数组。

...

要对比的数组变量的列表。

返回值

返回数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。

范例

示例 #1 array_intersect_assoc() 例子

"green", "b" = "brown", "c" = "blue", "red");

$array2 = array("a" = "green", "b" = "yellow", "blue", "red");

$result_array = array_intersect_assoc($array1, $array2);

print_r($result_array);

?

PHP两个数组的交集?

你这个搞得是不是太复杂了。请使用array_diff比较数组,返回不同,再计算交集。

PHP高手请进。把一个三维数组里的所有二维数组取出来比较,取交集...

//foreach三维,一步步算下去就行

$arr = array(

array('a'='1','b'='2','c'='5','d'='56'),

array('a'='1','c'='5','d'='56'),

array('a'='1','c'='5','e'='44'),

array('a'='1','c'='5','d'='56','f'='d')

);

if (count($arr)0)

{

foreach($arr as $key=$val)

{

if ($key==0)//第一个先取出来

{

$tmp_arr = $val;

}

else

{

$tmp_arr = array_intersect_assoc($tmp_arr,$val);

}

}

}

print_r($tmp_arr);

php 如何写一个取一维数组交集的公共方法

array_intersect

(PHP 4 = 4.0.1, PHP 5)

array_intersect -- 计算数组的交集说明

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

例子 1. array_intersect() 例子

?php

$array1 = array ("a" = "green", "red", "blue");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_intersect ($array1, $array2);

?

这使得 $result 成为:

Array

(

[a] = green

[0] = red

)

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

array_diff

(PHP 4 = 4.0.1, PHP 5)

array_diff -- 计算数组的差集说明

array array_diff ( array array1, array array2 [, array ...])

array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

例子 1. array_diff() 例子

?php

$array1 = array ("a" = "green", "red", "blue", "red");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_diff ($array1, $array2);

?

这使得 $result 成为 array (1 = "blue");。在 $array1 中多次出现的值同样对待。

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

注: 注意此函数仅检查多维数组中的一维。当然你可以用 array_diff($array1[0], $array2[0]); 检查更深的维度。

array_diff_assoc -- 带索引检查计算数组的差集

说明

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() 返回一个 array,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

例子 1. array_diff_assoc() 例子

?php

$array1 = array ("a" = "green", "b" = "brown", "c" = "blue", "red");

$array2 = array ("a" = "green", "yellow", "red");

$result = array_diff_assoc($array1, $array2);

?

上面的例子中可以看到键值对 "a" = "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 = "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。

键值对 key = value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。

php取数组交集,php遍历输出数组

2022-11-21
php遍历输出json(php遍历输出数组)

本文目录一览: 1、PHP如何循环json? 2、php 循环遍历json数据 3、php遍历目录下的全部文件 生成图片显示那样的json 不知道怎么实现了 4、PHP怎么解析这段json代码,并且要

2023-12-08
js取php数组(PHP 遍历数组)

本文目录一览: 1、js获取php的返回数组 2、js如何获取php数组 3、js如何获取php页面数组里面的值 js获取php的返回数组 Ajax获取到的本来就是HTML文本,自然有HTML标签。如

2023-12-08
php遍历数据,php数组的遍历

2022-12-02
php数组求交集,php 数组取交集

2023-01-09
php二维数组非遍历取值,PHP二维数组遍历

2022-11-22
php遍历post,php遍历数据库

2023-01-07
php循环输出数据后,php循环输出数组

2022-11-18
php数组遍历foreach(php 循环数组)

2022-11-10
phparray遍历key,php循环遍历数组

2022-11-26
php打印数组函数,php分行输出数组

2023-01-08
php遍历mysql资源(php 遍历目录)

2022-11-08
php基础知识之遍历数组,php递归函数遍历数组

2022-11-21
php遍历xml,php遍历数组的方法

2023-01-08
php遍历百万级数组,php处理十万级数组

2022-11-29
在php中读取json数组(php遍历json)

本文目录一览: 1、php提取json数据 2、PHP json数据写入到json文件,读取json文件 3、php如何读取json的内容 php提取json数据 $dataJson = "数据";

2023-12-08
php之数组(php的数组)

2022-11-08
php数组使用,php数组操作

2022-11-26
php数据库返回一个数组类型,php输出数组的函数

2022-11-20
php数组循环遍历偶数相加(phpfor循环遍历数组)

2022-11-12