标签: array-intersect

rails - 查找多个数组之间的交叉点

我试图找到多个数组之间的交集值.

例如

code1 = [1,2,3]
code2 = [2,3,4]
code3 = [0,2,6]
Run Code Online (Sandbox Code Playgroud)

结果将是2

我知道在PHP中你可以用array_intersect做到这一点

我希望能够轻松添加额外的数组,所以我真的不想使用多个循环

有任何想法吗 ?

谢谢,亚历克斯

ruby arrays ruby-on-rails array-intersect

68
推荐指数
2
解决办法
3万
查看次数

与array_intersect相反?

是否有内置函数来获取阵列2中不存在的阵列1的所有成员?
我知道如何以编程方式执行它,只是想知道是否有内置函数执行相同操作.所以请,没有代码示例.

php arrays array-intersect

45
推荐指数
2
解决办法
3万
查看次数

在多维数组上使用array_intersect

我有两个看起来像这样的数组:

Array
(
    [0] => Array
        (
            [name] => STRING
            [value] => STRING
        )

    [1] => Array
        (
            [name] => STRING
            [value] => STRING
        )

    [2] => Array
        (
            [name] => STRING
            [value] => STRING
        )
)
Run Code Online (Sandbox Code Playgroud)

我希望能够通过比较两个主数组中子数组的ID来复制array_intersect.到目前为止,我的尝试并没有成功.:(

php arrays array-intersect multidimensional-array

27
推荐指数
1
解决办法
2万
查看次数

在PHP中交叉未知数量的数组

我正在尝试与任意数量的PHP数组相交,其数量取决于用户提供的参数,每个参数都可以包含任意数量的元素.

例如:array1(1,2,3,4,5)array2(2,4,6,8,9,23)array3(a,b,3,c,f)... arrayN(x1,x2, x3,x4,x5 ...... xn)

由于array_intersect接受了一个params列表,我无法构建一个数组数组来交叉,并且必须绕过它.我想这个解决方案:http://bytes.com/topic/php/answers/13004-array_intersect-unknown-number-arrays但这并没有工作,因为报告的错误array_intersect需要2个或更多PARAMS.

有没有人知道如何以尽可能简单的方式处理这个问题?

php arrays loops array-intersect

12
推荐指数
1
解决办法
7094
查看次数

PHP:如何比较一个数组中的键与另一个数组中的值,并返回匹配?

我有以下两个数组:

$array_one = array('colorZero'=>'black', 'colorOne'=>'red', 'colorTwo'=>'green', 'colorThree'=>'blue', 'colorFour'=>'purple', 'colorFive'=>'golden');

$array_two = array('colorOne', 'colorTwo', 'colorThree');
Run Code Online (Sandbox Code Playgroud)

我想要一个数组,$array_one其中只包含其键是$ array_two成员的键值对(通过创建一个新数组或从其中删除其余元素$array_one)

我怎样才能做到这一点?

我看着array_diffarray_intersect,但他们比较值与值,而不是一个数组的值与其它的按键.

php arrays compare array-intersect array-difference

10
推荐指数
2
解决办法
2万
查看次数

检查数组是否包含另一个PHP数组

可能重复:
检查数组是否包含另一个数组的所有元素

我之前已经向Stackoverflow发布了这样的内容,但答案并不能完全满足我.这就是为什么我再次发布问题,但一直在改变问题.

有些人帮我构造了一个函数,它检查array($GroupOfEight[$i])一个多维元素是否array($GroupOfEight)等于另一个数组($ stackArray),忽略数组中的数字顺序.

但是,我需要检查的是所提到的是否array($stackArray)包含array($GroupOfEight[$i])多维中的任何一个array($GroupOfEight),这意味着main array($stackArray)可以包含更多的元素subarrays($GroupOfEight[$i]).

这是我到目前为止收集的一个工作代码,但需要修改为我想要的版本:

 <?php
    $GroupOfEight = array (
                          array(0,1,3,2,4,5,7,6),
                          array(4,5,6,7,15,12,13,14),
                          array(12,13,15,14,8,9,11,10),
                          array(2,6,14,10,3,7,15,11),
                          array(1,3,5,7,13,15,9,11),
                          array(0,4,12,8,1,5,13,9),
                          array(0,1,3,2,8,9,11,10)
                );


    $stackArray = array(0,4,12,1,9,8,5,13,9,2,5,2,10);
    /*$stackArray gets value with POST Method by URL parameter.
    This is just the example. As you see this array contains 
    $GroupOfEight[4], and also it contains many other numbers.*/


    /* The function given below checks if $stackArray equals any
    of the subarrays of $GroupOfEight. …
Run Code Online (Sandbox Code Playgroud)

php arrays array-intersect multidimensional-array

8
推荐指数
2
解决办法
2万
查看次数

两个列表的Python交集保持重复

我有两个平面列表,其中一个包含重复值.例如,

array1 = [1,4,4,7,10,10,10,15,16,17,18,20]
array2 = [4,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

我需要在array1中找到也在array2中的值,在array1中保留重复数据.期望的结果将是

result = [4,4,7,10,10,10]
Run Code Online (Sandbox Code Playgroud)

我想避免循环,因为实际数组将包含数百万的值.我尝试了各种设置和交叉组合,但是无法保留重复项.

任何帮助将不胜感激!

python duplicates array-intersect

7
推荐指数
2
解决办法
5007
查看次数

检查数组是否包含另一个数组的所有元素

我正在设计一个电气工程应用.但是,我坚持这个:我有以下数组

<?php 
// Static Array
$GroupOfEight = array (
                      array(0,1,3,2,4,5,7,6),
                      array(4,5,6,7,16,12,13,14),
                      array(12,13,15,14,8,9,11,10),
                      array(2,6,14,10,3,7,15,11),
                      array(1,3,5,7,13,15,9,11),
                      array(0,4,12,8,1,5,13,9),
                      array(0,1,3,2,8,9,11,10)
                      );
?>
Run Code Online (Sandbox Code Playgroud)

我有另一个阵列,但这个是一维的.

<?php
$myStack = array(0,1,3,2,4,5,7,6); //Dynamic, gets value by POST method.
?>
Run Code Online (Sandbox Code Playgroud)

我想要做的是检查$ myStack是否等于$ GroupOfEight数组的任何子数组.(数字排序并不重要.脚本应该只检查每个元素是否包含.如果它们的顺序相同,那就不重要了.)

以下是我到目前为止解决这个问题的方法:

<?php
//Check if stackArray contains 8group
for($i=0; $i<count($GroupOfEight);$i++)
for($j=0; $j<count($GroupOfEight[$i]); $j++){
    //$containsSearch = count(array_intersect($search_this,$all)) == count($search_this);
    $containsSearch = count(array_intersect($stackArray,$GroupOfEight[$j])) == count($stackArray);
    echo $containsSearch;
}
?>
Run Code Online (Sandbox Code Playgroud)

请帮我纠正我的代码或向我介绍这个问题的解决方案,谢谢.

编辑:它应该只提供1个索引号.例如,stackArray是0,1,3,2,4,1,2,3,它应该找到匹配相同数字的GroupOfEight [N],而不管数字的顺序如何.如果有匹配的情况,我应该得到N.

php arrays array-intersect multidimensional-array

6
推荐指数
1
解决办法
2843
查看次数

快速count()两个字符串数组的交集

我需要计算对应于两个大字符串数组的交集的元素数量,并且非常快.

我使用以下代码:

arr1[i].Intersect(arr2[j]).Count()
Run Code Online (Sandbox Code Playgroud)

对于CPU时间,VS Profiler指示

  • 85.1% System.Linq.Enumerable.Count()
  • 0.3% System.Linq.Enumerable.Intersect()

不幸的是,完成所有工作可能需要数小时.

怎么做得更快?

c# optimization array-intersect

6
推荐指数
1
解决办法
3176
查看次数

PHP:in_array()vs array_intersect()性能

什么,以及多少,更快 - 手动迭代数组foreach并检查needle出现in_array()或使用array_intersect()

php arrays performance benchmarking array-intersect

6
推荐指数
1
解决办法
1448
查看次数