导航:首页 > 编程语言 > php数组交叉

php数组交叉

发布时间:2023-01-08 04:03:38

php 数组分割成多个数组

1.系统函数:
array_chunk() 把一个数组分割为新的数组块
array_slice() 返回数组中被选定的部分等,更多的参考w3school
http://www.w3school.com.cn/php/php_ref_array.asp,程序员要学会用手册
2.自定义函数:
当系统函数不能满足实际需求时,根据实际的需求,自己重新定义函数
function(){}

3、 计算参数的数组:

参数1是传入数组,参数2是每个分数组元素数量//调用方法返回的是二维数组,可以用数组下标取出你需要的一维数组。

㈡ php 两个一维数组交叉遍历变二维

$a=array(1,2);
$b=array(20001,20002,20003);
$c=array();
for($i=0;$i<count($b);$i++){
for($j=0;$j<count($a);$j++){
array_push($c,array($a[$j],$b[$i]));
}
}
echo'<pre>';
print_r($c);
echo'</pre>';

效果图

㈢ 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;$i<count($arr);$i++)
{

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

}
echo $str_u;
?>

㈣ php 数组问题

这个没有现成的函数,可以用循环来遍历。

$count=0;
foreach($aas$value){
if($value==1)
$count++;
}
echo$count;//就是1的个数。

㈤ php如何遍历交叉的多维数组并给其id和pid(父键id)

遍历数组常用的函数为foreach(),具体要怎么遍历这个交叉数组,你要结合你自己的实际需要去遍历了

㈥ PHP 数组问题

<?php
$arr = array('1','2','3','4','5','6','6','6','6','7','7','9','9','9','j','j','k','k','9','9','6','6');
$count=count($arr);
for ($i=0; $i <$count ; $i++) {
if ($arr[$i]==$arr[$i+1]&&$arr[$i]==$arr[$i+2]&&$arr[$i]==$arr[$i+3]) {
echo $arr[$i].$arr[$i+1].$arr[$i+2].$arr[$i+3]."<br>";
}
elseif ($arr[$i]==$arr[$i+1]&&$arr[$i]==$arr[$i+2]) {
if ($arr[$i]!=$arr[$i+3]&&$arr[$i]!=$arr[$i-1]) {
echo $arr[$i].$arr[$i+1].$arr[$i+2]."<br>";
}

}

}
?>
写了4个9和3个6,比较笨的方法,你看看

㈦ php下将多个数组合并成一个数组的方法与实例代码

1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
复制代码
代码如下:
array
array_merge
(array
array1
array2…,arrayN)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
复制代码
代码如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
这将返回如下所示的结果,运行代码:
复制代码
代码如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
复制代码
代码如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
这将返回如下结果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,两个输入数组必须大小相同,不能为空。示例如下:
复制代码
代码如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
这会返回:
复制代码
代码如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)

阅读全文

与php数组交叉相关的资料

热点内容
伊克塞尔文档怎么进行加密 浏览:884
app转账是什么 浏览:157
php的基本语法 浏览:790
对外汉语pdf 浏览:516
如何用mamp本地web服务器 浏览:869
如何加密自己js代码 浏览:627
排列组合a与c的算法 浏览:534
如何在文件夹中找到同名内容 浏览:786
有什么app文字转韩文配音 浏览:372
循环宏1命令 浏览:35
斐波那契数列矩阵算法 浏览:674
公式保护后加密不了 浏览:82
java跳转到jsp 浏览:819
327平方根算法 浏览:216
win7美化命令行终端 浏览:797
免加密狗图片 浏览:485
一只透明的鸟是什么app 浏览:817
空气压缩机油批发商 浏览:69
linuxifexist 浏览:4
加密tf卡拷入文件 浏览:399