php ::从已经存在的数组中删除选项?

时间:2010-10-03 22:37:07

标签: php arrays

我有两个数组

一个喜欢

1 | 1st name
2 | 2nd name
3 | 3rd name
4 | 4th name

和一个像

1st name
2nd name
3rd name
4th name
5th name
6th name
7th name

基本上我想要交叉这些数组

我需要对这些数组进行交互,所以我最终得到的第二个数组只是

5th name
6th name
7th name

我将如何做到这一点?

3 个答案:

答案 0 :(得分:1)

您所描述的内容更像diff。如果您的数组的看起来与您描述的完全相同,则必须首先将其解析为临时数组,因此您最终会在要扩散的两个数组中获得确切的数据形式。

答案 1 :(得分:0)

如果两个数组都已经排序,那么这是一项简单的工作: 在第一个数组中搜索第二个数组的“i”元素,而firt中的“j”元素是“更小”(看看strcmp)。如果你找到它,那么你转到下一个“i”元素,如果你没有把你的“i”元素放在第三个数组中。然后继续下一个“我”; 如果它没有排序,你可以考虑先排序;如果您选择不对它们进行排序,则必须对数组1中数组2中的每个项进行线性搜索。

我不清楚你的阵列是怎样的。如果它们与你所写的一模一样,你必须先解析它们,就像Ondrej所说的那样。

答案 2 :(得分:0)

实际上,您可以使用PHP原生的array_diff函数:

http://php.net/manual/en/function.array-diff.php