Php 过滤掉两个不包含点的列表中的重复项

Php 过滤掉两个不包含点的列表中的重复项,php,arrays,Php,Arrays,假设我有两个数组 阵列A N1099 N1100 N1100.1 N1100.2 N1100.3 N1100.4 N1100.5 N1101 N1101.1 阵列B N1100.1 N1100.2 N1100.3 N1100.4 N1100.5 N1100.6 N1101.1 现在您可以看到数组a包含N1100和N1101,它们在列表B中也有“子项”。然后我想删除数组a中的父项,使其成为: 比较两个数组后生成的数组 N1099 N1100.1 N1100.2 N1100.3 N1100.4

假设我有两个数组

阵列A

N1099
N1100
N1100.1
N1100.2
N1100.3
N1100.4
N1100.5
N1101
N1101.1
阵列B

N1100.1
N1100.2
N1100.3
N1100.4
N1100.5
N1100.6
N1101.1
现在您可以看到数组a包含N1100和N1101,它们在列表B中也有“子项”。然后我想删除数组a中的父项,使其成为:

比较两个数组后生成的数组

N1099
N1100.1
N1100.2
N1100.3
N1100.4
N1100.5
N1101.1
如何在php中实现这一点

我只发现了诸如合并2个数组和过滤重复项之类的问题,但这里的情况并非如此。我想过滤掉其中不包含点“.”的重复项


您需要按以下方式进行:-

<?php

$listA = Array('N1099','N1100','N1100.1','N1100.2','N1100.3','N1100.4','N1100.5','N1101','N1101.1');
$listB = Array('N1100.1','N1100.2','N1100.3','N1100.4','N1100.5','N1100.6','N1101.1');
$listC = array();
$listA = array_unique($listA);
foreach($listA as $lisA){
    if(in_array($lisA,$listB) || !in_array($lisA.'.1',$listB)){
        $listC[] = $lisA;
    }
}
echo"<pre/>";print_r($listC);
?>


输出:-

您需要按以下方式执行:-

<?php

$listA = Array('N1099','N1100','N1100.1','N1100.2','N1100.3','N1100.4','N1100.5','N1101','N1101.1');
$listB = Array('N1100.1','N1100.2','N1100.3','N1100.4','N1100.5','N1100.6','N1101.1');
$listC = array();
$listA = array_unique($listA);
foreach($listA as $lisA){
    if(in_array($lisA,$listB) || !in_array($lisA.'.1',$listB)){
        $listC[] = $lisA;
    }
}
echo"<pre/>";print_r($listC);
?>


输出:-

不清楚您想做什么。列表是指数组吗?循环第一个数组。对于每个值,如果它存在于另一个数组中,则保留它。如果它不存在于另一个数组中,那么它必须是父数组并被删除?不确定您的数据是否是这样工作的,但这将是我的方法……编辑oops,我看到您想要N1099,但不是N1100。我猜您必须拆分字符串(分解)并检查前半部分
,现在您可以看到数组a包含N1100和1001,并且它们在列表B中也有“子项”。
。在哪里?对不起,拼错了。是的,这将是一个好主意右键单击“谢谢”将尝试此功能。=)@安德斯,请把答案投上去,我也不清楚你想做什么。列表是指数组吗?循环第一个数组。对于每个值,如果它存在于另一个数组中,则保留它。如果它不存在于另一个数组中,那么它必须是父数组并被删除?不确定您的数据是否是这样工作的,但这将是我的方法……编辑oops,我看到您想要N1099,但不是N1100。我猜您必须拆分字符串(分解)并检查前半部分
,现在您可以看到数组a包含N1100和1001,并且它们在列表B中也有“子项”。
。在哪里?对不起,拼错了。是的,这将是一个好主意右键单击“谢谢”将尝试此功能。=)@安德斯,请把答案投上去,我也不清楚你想做什么。列表是指数组吗?循环第一个数组。对于每个值,如果它存在于另一个数组中,则保留它。如果它不存在于另一个数组中,那么它必须是父数组并被删除?不确定您的数据是否是这样工作的,但这将是我的方法……编辑oops,我看到您想要N1099,但不是N1100。我猜您必须拆分字符串(分解)并检查前半部分
,现在您可以看到数组a包含N1100和1001,并且它们在列表B中也有“子项”。
。在哪里?对不起,拼错了。是的,这将是一个好主意右键单击“谢谢”将尝试此功能。=)@安德斯请把答案也投上去