【发布时间】:2010-10-03 22:37:07
【问题描述】:
我有两个数组
一个喜欢
1 |第一个名字 2 |第二个名字 3 |第三个名字 4 |第四名还有一个喜欢
第一个名字 第二个名字 第三个名字 第四名 第五名 第六名 第七名基本上我想将这些数组相交
我需要将这些数组相交,所以我最终得到的第二个数组只是
第五名 第六名 第七名我该怎么做呢?
【问题讨论】:
-
请在两个阵列上发布
print_r()或var_dump()
我有两个数组
一个喜欢
1 |第一个名字 2 |第二个名字 3 |第三个名字 4 |第四名还有一个喜欢
第一个名字 第二个名字 第三个名字 第四名 第五名 第六名 第七名基本上我想将这些数组相交
我需要将这些数组相交,所以我最终得到的第二个数组只是
第五名 第六名 第七名我该怎么做呢?
【问题讨论】:
print_r() 或var_dump()
你描述的更像diff。如果您的数组的 values 看起来与您描述的完全一样,则您必须首先将其解析为 temp 数组,因此您最终会在您想要区分的两个数组中获得确切形式的数据。
【讨论】:
如果两个数组都已经排序,这是一项简单的工作: 在第一个数组中搜索第二个数组的“i”元素,而第一个数组中的“j”元素“更小”(看看 strcmp)。如果找到它,则转到下一个“i”元素,如果您没有将“i”元素放在第三个数组中。然后继续下一个“i”; 如果没有排序,也许你可以考虑先排序;如果选择不对它们进行排序,则必须对数组 1 中的数组 2 中的每一项进行线性搜索。
我不知道您的阵列是怎样的。如果它们与您所写的完全相同,则必须首先按照 Ondrej 所说的方式解析它们。
【讨论】:
其实你可以使用 PHP 自带的 array_diff 函数:
【讨论】: