循环两个数组,没有来自第一个数组的重复值

Posted

技术标签:

【中文标题】循环两个数组,没有来自第一个数组的重复值【英文标题】:Loop two arrays without duplicate values from the first array 【发布时间】:2021-04-26 22:40:56 【问题描述】:

我不是 100% 确定标题(缺少某些内容),但我 100% 确定我需要什么输出。

$A = array('0' => '1451', '1' => '1451', '2' => '1452', '3' => '1452', '4' => '1453', '5' => '1453', '6' => '1457', '7' => '1460');
$B = array('0' => '22',   '1' => '23',   '2' => '22',   '3' => '23',   '4' => '22',   '5' => '23',   '6' => '',     '7' => '');
    
          for ($i=0, $n=sizeof($A); $i<$n; $i++) 
               echo $A[$i] . ' = ' . $B[$i] . '<br />';
          
          echo '<hr></hr>';
          echo 'I need this output, is possible: 
          1451 = 22, 23<br />
          1452 = 22, 23<br />
          1453 = 22, 23<br />
          1457 =<br />
          1460 = ';

你可以在这里运行代码:https://extendsclass.com/php-bin/3baf302

【问题讨论】:

这能回答你的问题吗? PHP - Merging two arrays into one array (also Remove Duplicates) @RobinSingh,在你的链接中我发现这个 $result = array_unique(array_merge($A,$B));并带有循环 for ($i=0, $n=sizeof($result); $i'; ,但结果不是我需要的 100%。谢谢你的帮助 【参考方案1】:

使用for 循环,您需要更改代码:

<?php
// Input
$A = array('0' => '1451', '1' => '1451', '2' => '1452', '3' => '1452', '4' => '1453', '5' => '1453', '6' => '1457', '7' => '1460');
$B = array('0' => '22',   '1' => '23',   '2' => '22',   '3' => '23',   '4' => '22',   '5' => '23',   '6' => '',     '7' => '');

// Output array
$O = array();    
for ($i = 0, $n = count($A); $i < $n; $i++) 
    $O[$A[$i]][] = $B[$i];


// Print the output
foreach ($O as $key => $items) 
    echo $key." = ".implode(',', $items)."<br>";
   
?>

【讨论】:

以上是关于循环两个数组,没有来自第一个数组的重复值的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript数组every方法

java怎么判断数组中有重复的元素

java 中如何 找出两个集合中的不重复的元素

合并两个整数数组[重复]

归并方法

查找两个数组之间的重复值