【问题标题】:Search inside arrays, count, find duplicates, compare [closed]在数组中搜索、计数、查找重复项、比较 [关闭]
【发布时间】:2010-09-04 23:44:18
【问题描述】:

关于简单和多维数组的几个如何问题:

1) 如何在简单数组和多数组中进行搜索?

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

3) 如何捕捉内部重复:

 3.1 multidimensional array?

 3.2 simple array?

 3.3 in array's search results?

 3.4 and remove them?

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

【问题讨论】:

    标签: php arrays count multidimensional-array compare


    【解决方案1】:
    1. 要搜索一个值是否存在于简单数组中,只需使用in_array,要获取值的键,使用array_search。对于多维数组,编写一个递归函数,它将搜索值,如果值是数组(子数组)则递归。
    2. 让上述函数返回找到的总数,并将所有子递归返回值相加。
    3. 要捕获重复项:
      1. 多维数组:与上述概念相同的递归函数
      2. 简单数组:键肯定不会重复,并使用array_unique 删除重复项(您可以检查前后数组长度以查看是否删除了任何内容,这意味着找到了重复项)。
      3. 搜索结果应该是一个简单的数组,传给上面那个。
      4. 删除它们; array_unique 如上所述。
    4. 比较数组:array_ intersectarray_ diff,对于多维使用这些函数用户回调变化来实现您想要的。

    也可以看看PHP Array Functions

    【讨论】:

      【解决方案2】:

      要删除重复项,试试这个:array_unique

      统计搜索结果数:

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

      【讨论】:

        【解决方案3】:

        搜索: array_search

        重复: in_array

        比较: array_diffarray_intersect

        至于它们的多维对应物 - 只需滚动浏览每个功能页面底部的用户 cmets,您一定会找到某人提供的不错的功能。

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

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

        【讨论】:

          猜你喜欢
          • 2020-03-09
          • 2017-09-24
          • 1970-01-01
          • 1970-01-01
          • 2013-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多