请教 PHP array_intersect() 函数用法

2019-07-15 16:07:31 +08:00
 peizhao2017
<?php

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

$a2=array("e"=>"red","f"=>"black","g"=>"purple");

$a3=array("a"=>"red","b"=>"black","h"=>"yellow");


$result=array_intersect($a1,$a2,$a3);

print_r($result);

?>


官方教程里 array_intersect 里手工指定 $a1,$a2,$a3


怎么样动态的向 array_intersect 里面传参数呢
1606 次点击
所在节点    问与答
9 条回复
Snail233
2019-07-15 16:18:56 +08:00
什么动态不动态的,你直接传不就行了。。。array_intersect([],[])
liyaoo
2019-07-15 16:24:14 +08:00
动态个数?
peizhao2017
2019-07-15 16:26:12 +08:00
@liyaoo
对对,array_intersect 里面的数组数量是变化的,要怎么传进去
zsdroid
2019-07-15 16:31:56 +08:00
$arr = [
$arr1,
$arr2,
$arr3,
//...
];
$arr[] = $arr4;
$arr[] = $arr5;
call_user_func_array('array_intersect',$arr);
ccliuxy
2019-07-15 16:38:32 +08:00
array_intersect(...$set)
peizhao2017
2019-07-15 17:03:17 +08:00
@zsdroid 谢谢,回调函数吗


@ccliuxy 大神没看懂
vescape920
2019-07-15 17:06:22 +08:00
4L 和 5L 正解
PHP5.6 以下可以使用`call_user_func_array('array_intersect',$arr);`
PHP5.6+ 可以使用 array_intersect(...$set)
ccliuxy
2019-07-15 17:37:23 +08:00
@peizhao2017
```
$a = array('qqq','rrr','www');
$b = array('www','ccc');
$c = array('bbb', 'www', 'ccc');
$set = array($a, $b, $c);
print_r(array_intersect(...$set));
```
文档在这里[https://www.php.net/manual/zh/functions.arguments.php#functions.variable-arg-list]( https://www.php.net/manual/zh/functions.arguments.php#functions.variable-arg-list)
peizhao2017
2019-07-16 20:45:42 +08:00
感谢各位

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583120

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX