在数组内搜索,计数,查找重复项,进行比较

时间:2010-09-04 23:44:18

标签: php arrays count multidimensional-array compare

关于简单和多维数组的几个 HOW TO 问题:

1)如何搜索简单和多个数组?

2)如何计算搜索结果的数量?

3)如何捕捉内部重复:

 3.1 multidimensional array?

 3.2 simple array?

 3.3 in array's search results?

 3.4 and remove them?

4)如何比较两个数组(多维也是?

3 个答案:

答案 0 :(得分:2)

要删除重复项,请尝试以下操作:array_unique

计算搜索结果的数量:

$values = array_count_values($array); 
$count = $values[$value]; //$value is what you search for

答案 1 :(得分:2)

  1. 要搜索简单数组中是否存在值,只需使用in_array来获取值的键,请使用array_search。对于多维数组,编写一个递归函数,它将搜索值,并递归一个值是否为数组(子数组)。
  2. 让上面的函数返回total found,并求所有子递归返回值。
  3. 要抓住重复项:
    1. 多维数组:具有上述相同概念的递归函数
    2. 简单数组:密钥不会重复,并使用array_unique删除重复项(您可以检查前后的数组长度,看是否有任何内容被删除,这意味着找到了重复项。) / LI>
    3. 搜索结果应该是一个简单的数组,将其传递给上面的数组。
    4. 删除它们; array_unique如上所述。
  4. 比较数组:array_ intersectarray_ diff,多维使用这些函数用户回调变体来实现您想要的效果。
  5. 另请查看PHP Array Functions

答案 2 :(得分:1)

搜索: array_search

重复: in_array

比较: array_diffarray_intersect

至于他们的多维对应 - 只需滚动每个功能页面底部的用户注释,你一定会找到一个由某人贡献的好功能。

对于数组中的键数,您可以简单地使用count()函数,因为它接受数组。因此,要计算搜索结果,您可以执行以下操作:

count(array_search("1", $array)); //1 being the needle and $array the haystack