【问题标题】:php :: remove options from array that already exist?php :: 从已经存在的数组中删除选项?
【发布时间】:2010-10-03 22:37:07
【问题描述】:

我有两个数组

一个喜欢

1 |第一个名字 2 |第二个名字 3 |第三个名字 4 |第四名

还有一个喜欢

第一个名字 第二个名字 第三个名字 第四名 第五名 第六名 第七名

基本上我想将这些数组相交

我需要将这些数组相交,所以我最终得到的第二个数组只是

第五名 第六名 第七名

我该怎么做呢?

【问题讨论】:

  • 请在两个阵列上发布print_r()var_dump()

标签: php arrays


【解决方案1】:

你描述的更像diff。如果您的数组的 values 看起来与您描述的完全一样,则您必须首先将其解析为 temp 数组,因此您最终会在您想要区分的两个数组中获得确切形式的数据。

【讨论】:

  • 是的,array_diff 是我正在寻找的函数 :) 是的,我也必须这样做。
【解决方案2】:

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

我不知道您的阵列是怎样的。如果它们与您所写的完全相同,则必须首先按照 Ondrej 所说的方式解析它们。

【讨论】:

    【解决方案3】:

    其实你可以使用 PHP 自带的 array_diff 函数:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 2015-10-09
      • 2014-09-30
      • 1970-01-01
      相关资源
      最近更新 更多