【问题标题】:Compare n arrays and get the uniques比较 n 个数组并获得唯一值
【发布时间】:2021-10-18 01:06:28
【问题描述】:

尝试将不确定数量的数组与 PHP 进行比较,并获取其中任何一个中不重复 val 的数组:

我现在拥有的:

Array ( 
    [0] => Array 
        ( [1] => 1072 [2] => 835 [3] => 797 [4] => 586 [5] => 421 [6] => 425 [7] => 517 [8] => 658 [9] => 382 [10] => 369 [11] => 358 [12] => 361 [13] => 364 [14] => 359) 
        [1] => Array ( [1] => 1072 [2] => 835 [3] => 797 [4] => 586 [5] => 421 [6] => 425 [7] => 517 [8] => 658 [9] => 382 [10] => 369 [11] => 358 [12] => 361 [13] => 364 [14] => 359 ) 
        [2] => Array ( [1] => 111 [2] => 835 [3] => 797 [4] => 586 [5] => 421 [6] => 425 [7] => 517 [8] => 658 [9] => 382 [10] => 369 [11] => 358 [12] => 361 [13] => 364 [14] => 359 ) 
        [3] => Array ( [1] => 1073 [2] => 835 [3] => 797 [4] => 586 [5] => 421 [6] => 425 [7] => 517 [8] => 658 [9] => 382 [10] => 369 [11] => 358 [12] => 361 [13] => 364 [14] => 359 )
        [4] => Array ( [1] => 90 [2] => 91 [3] => 797 [4] => 586 [5] => 421 [6] => 425 [7] => 517 [8] => 658 [9] => 382 [10] => 369 [11] => 358 [12] => 361 [13] => 364 [14] => 359 )  
...

所以我需要得到的只是那些没有数字在其他数组中的数组。

要比较的数组的数量是不确定的,因为是先前过滤数据的结果。

尝试在没有一堆循环的情况下制作尽可能干净的东西。我使用 Laravel 作为框架,也尝试转换为集合但没有成功。任何想法都将不胜感激。

【问题讨论】:

  • 用几个数组项给出一个你想要的输入和输出示例。
  • 输入:$arr[0] = [1,2,3,4,5]; $arr[1] = [16,17,18,20,22]; $arr[2] = [1,6,3,9,5]; $arr[3] = [6,7,8,10,12];我需要输出的是: $arr[2] $arr[4]
  • 首先,你没有索引4,它是从哪里来的?还有$arr[2]$arr[3] 都有 6 怎么独特?
  • 对不起,在编辑答案时被删除。在我给出的示例中,我只需要 arr[2]

标签: php arrays laravel


【解决方案1】:
$arrs = [
    [1,2,3],
    [1, 2,3],
    [5,6]
];
    
foreach ($arrs as $arr) {
    if ($arr === array_diff($arr, $arrs)) {
        $results[] = $arr;
    }
}

【讨论】:

  • 这不是一个正确的答案。 op 希望所有数组一起比较,array_diff 将一个数组与其他数组进行比较。
猜你喜欢
  • 2015-07-19
  • 1970-01-01
  • 2013-10-11
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
相关资源
最近更新 更多