循环两个数组,没有来自第一个数组的重复值
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>";
?>
【讨论】:
以上是关于循环两个数组,没有来自第一个数组的重复值的主要内容,如果未能解决你的问题,请参考以下文章