标签: array-intersect

在Python中查找2个列表中相同元素的数量

在Python中如果我有2个列表说:

l1 = ['a', 'b', 'c', 'd']
l2 = ['c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)

有没有办法找出他们有多少元素相同.在这种情况下它将是2(c和d)

我知道我可以做一个嵌套循环但是没有内置函数,就像php中的array_intersect函数一样

谢谢

python arrays array-intersect

5
推荐指数
3
解决办法
3260
查看次数

使用array_intersect 将数组与重复值进行比较?

我正在为我的目录设计一个包引擎。在这里,您可以将一定数量的产品添加到套餐中并享受折扣。当您订购产品时,脚本必须检测哪些包裹交易适用于您的订单。

这是我的代码:

// packages
$packages["package1"] = array(1,1,2);
$packages["package2"] = array(1,2);

//orderlist
$orderlist = array(1,1,2,1,2,2);

// put the order list in a temp array
$temp_product_array = $orderlist;

foreach($packages as $pname => $package_array)
{
  $no_more_package = 0;
  do
  {
    // put the package products in a temp array
    $temp_package_array = $package_array;

    $is_packages_array = array_intersect($temp_package_array,$temp_product_array);

    // if all package values are present
    if(count($is_packages_array) == count($temp_package_array))
    {
      // add package name
      $packages_in_order[] =  $pname;

      // filter the package out of the product list but …
Run Code Online (Sandbox Code Playgroud)

php arrays array-intersect

5
推荐指数
1
解决办法
1015
查看次数

PHP如何通过键而不是值进行array_intersect?

$master = ['111' => 'foo', '124' => 'bar', '133' => 'baz'];

$check = ['111' => 14, '133' => 23 ]';

我想从中删除所有$master不存在的键$check。因此,此示例中的结果应为:

$newMaster = ['111' => 'foo', '133' => 'baz'];

任何想法如何做到这一点?提前致谢。

php arrays array-intersect

5
推荐指数
1
解决办法
1704
查看次数

通过将列值与另一个数组中不同键的列进行比较来过滤二维数组

我正在使用 2 个数组。第一个数组来自 CSV 文件的数据,另一个数组是来自 API 的响应。

是否可以使用数组 1 中的匹配值来过滤数组 2?

数组 1 示例

[
    ["B00CEEZ57S"],
    ["B002QJZADK"],
    ["B001EHL2UK"],
    ["B003FSTNB6"],
]
Run Code Online (Sandbox Code Playgroud)

数组 2 示例

[
    [
        "name" => "Jonathan Franzen: Purity (Hardcover); 2015 Edition",
        "ASIN" => "B002QJZADK"
    ],
    [
        "name" => "Cardinal Gates Outdoor Child Safety Gate, Brown",
        "ASIN" => "B00CE8C7SO"
    ],
    [
        "name" => "Sauder Edge Water 71.88\" Bookcase Estate Black Finish",
        "ASIN" => "B001EHL2UK"
    ],
    [
        "name" => "The Pioneer Woman 82695.03R Cowboy Rustic 8\" Rosewood Handle Can Opener, …
Run Code Online (Sandbox Code Playgroud)

php arrays intersection array-intersect

5
推荐指数
1
解决办法
7781
查看次数

为什么 array_uintersect() 比较 array1 和 array2、array1 和 array1 以及 array2 和 array2 之间的元素?

测试脚本

$i = 0;
array_uintersect(['foo', 'bar'], ['baz', 'qux'], function($a, $b) use (&$i) {
    print_r([$a, $b, $i++]);
});
Run Code Online (Sandbox Code Playgroud)

实际结果

Array
(
    [0] => bar
    [1] => foo
    [2] => 0
)
Array
(
    [0] => qux
    [1] => baz
    [2] => 1
)
Array
(
    [0] => bar
    [1] => qux
    [2] => 2
)
Array
(
    [0] => bar
    [1] => foo
    [2] => 3
)
Run Code Online (Sandbox Code Playgroud)

预期结果

Array
(
    [0] => foo
    [1] => baz
    [2] => 0
)
Array …
Run Code Online (Sandbox Code Playgroud)

php arrays filtering array-intersect custom-function

5
推荐指数
1
解决办法
1211
查看次数

array_intersect可变数量的数组

我正在创建一个分面搜索,我正在尝试array_intersect比较数组并找到匹配的输入.

问题是我随时会有可变数量的数组,具体取决于用户选择的过滤器:

$array_1, $array_2, $array_3 等等...

如何array_intersect在这种意义上创建一个动态的函数?

这就是我尝试过的:

$next_array = 0;
for($i = 0; $i < $array_count; $i++) {
    $next_array++;
    if ($i == 0) {
        $full_array = ${array_.$i};
    } else {
        if(!empty(${cvp_array.$next_array})) {
            $full_array = array_intersect($full_array, ${cvp_array_.$next_array});
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

-------------编辑-------------

我会尝试更多地缩小我的目标:

如果用户单击三个过滤器,则会生成三个阵列,每个阵列都有单独的结果:

Array_1 ( [0] => 2, [1] => 4, [2] => 6 )

Array_2 ( [0] => 1, [1] => 4, [2] => 6 )

Array_3 ( [0] => 6, [1] => 7, [2] …

php arrays variables loops array-intersect

4
推荐指数
2
解决办法
4946
查看次数

PHP array_intersect不区分大小写并忽略波浪号

是否有任何类似于"array_intersect"的函数,但它在模式不区分大小写并忽略波浪线?

array_intersect PHP函数将数组元素与===进行比较,因此我没有得到预期的结果.

例如,我想要这个代码:

$array1 = array("a" => "gréen", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
Run Code Online (Sandbox Code Playgroud)

输出gréen红色.在默认的array_intersect函数中,建议使用红色(正常原因===).

有解决方案吗

先感谢您

php case-insensitive array-intersect string-comparison

4
推荐指数
2
解决办法
3523
查看次数

如何从array_intersect()获得区分大小写的返回

我有两个数组,我需要比较它并从array1返回匹配的值.请参考下面的代码,

$array1 = array("a" => "Green", "Red", "Blue");
$array2 = array("b" => "grEEn", "yellow", "red");
$result = array_intersect(array_map('strtolower', $array1), array_map('strtolower', $array2));

print_r($result);
Run Code Online (Sandbox Code Playgroud)

我的结果是,

Array
(
    [a] => green
    [0] => red
)
Run Code Online (Sandbox Code Playgroud)

但我期望的结果是我想从array1得到它像:

Array
(
    [a] => Green
    [0] => Red
)
Run Code Online (Sandbox Code Playgroud)

php arrays array-intersect

4
推荐指数
1
解决办法
848
查看次数

如何获得两个数组的键相交?

我有两个阵列如图所示

//array 1
Array
(
    [0] => 223
    [1] => 216
)

/array 2
Array
(
    [221] => Bakers
    [220] => Construction
    [223] => Information Technology
    [216] => Jewellery
    [217] => Photography
    [222] => Retailers
)
Run Code Online (Sandbox Code Playgroud)

我想要第一个数组的键(值)与第二个数组(键)匹配的文本.

预期结果:

Information Technology, Jewellery
Run Code Online (Sandbox Code Playgroud)

php arrays array-intersect

3
推荐指数
1
解决办法
34
查看次数

比较两个数字数组并删除php中的重复项

好的我有两组手机号码(来自mysql)我需要处理,问题是我需要从结果中删除重复的数字.

有人告诉我"array_intersect",但我对这些事情并不擅长,我在PHP网站上看不到任何好的例子.

任何帮助或建议表示赞赏谢谢:)

php mysql arrays array-intersect

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

array_intersect():参数 #1 不是数组?

对于我的代码可能有什么问题,我已经没有想法了。这个特定的类接受一个数组并将其与另一个数组进行检查以获取公共值。然后它通过 Final_post_vars_keys() 函数提供对通用值的访问。但每当我运行代码时,我都会收到错误(在标题中)。

 <?php

    class PostVarsKeys {
     private $general_keys = array("name", "email", "custom phone" , "lastname" , "firstname", "fname", "lname", "phone" , "emailaddress" ,  
            "phonenumber");
     private $post_vars_keys = array();


     public function __construct($post_keys){
      $counter=0;      
      foreach($post_keys as $key => $value):
       $this->post_vars_keys[$counter++] = $key;
      endforeach;
     }

     public function final_post_vars_keys(){
      return $final_keys = array_intersect($this->general_keys, $this->post_vars_keys);
     }
    }
Run Code Online (Sandbox Code Playgroud)

php array-intersect

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

PHP递归数组相交键触发字符串值

PHP Catchable fatal error: Argument 2 passed to NUI::recArrInterKey() must be an array, string given我当前在尝试递归地相交多维数组(灰/白列表)时收到错误。

$foo['contact']['im']['provider']由于某种我无法弄清楚的原因,它似乎在该部分上绊倒了?

这是我正在使用的白名单数组 ($array2) 示例

Array
(
    [location] => false
    [network_name] => false
    [interests] => false
    [last_name] => false
    [url] => false
    [significant_other] => false
    [network_domains] => false
    [contact] => Array
        (
            [im] => Array
                (
                    [provider] => false
                )

            [email_addresses] => false
        )

)
Run Code Online (Sandbox Code Playgroud)

以及方法

/**
 * Recursive array intersect key
 */
private static function recArrInterKey(array $array1, array $array2) 
{
    $array1 = array_intersect_key($array1, …
Run Code Online (Sandbox Code Playgroud)

php oop recursion array-intersect

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

当数组具有子数组时,array_intersect会引发错误

我正在尝试array_intersect比较两个数组数组.

$start[]=array(
        'id'=>1,
        'name'=>'Up',
        'action'=>'up'
);
$start[]=array(
        'id'=>3,
        'name'=>'Down',
        'action'=>'down'
);
$start[]=array(
        'id'=>5,
        'name'=>'Left',
        'action'=>'left'
);




$end[]=array(
        'id'=>1,
        'name'=>'Up',
        'action'=>'up'
);
$end[]=array(
        'id'=>9,
        'name'=>'Up',
        'action'=>'up'
);

$result=array_intersect($start,$end);
Run Code Online (Sandbox Code Playgroud)

但是,我总是收到通知消息:

注意:xyz行上的testfile.php中的数组转换为字符串

而且这种比较实际上并没有发生.

比较两个阵列而不重新发明轮子或达到过于复杂的东西的最佳方法是什么?

php arrays array-intersect multidimensional-array

0
推荐指数
1
解决办法
5865
查看次数