【问题标题】:How to get SQL-like HAVING and GROUP BY for PHP arrays?如何为 PHP 数组获取类似 SQL 的 HAVING 和 GROUP BY?
【发布时间】:2012-04-19 01:58:48
【问题描述】:

是否有一个 PHP 代码 sn-p 或一个内置的数组函数可以做类似于具有和 group by 的 sql 语句的作用?那就是删除重复数据并计算出现次数,并返回一个可用于报告/调试目的的数组。

一个例子可以说明;

说你的数组是这样的

Array (
['0'] => usa
['1'] => minnesota
['2'] => california
['3'] => san fransisco
['4'] => los angeles
['5'] => san fransisco
['6'] => malibu
['7'] => malibu
['8'] => malibu
['9'] => usa
}

你想要这样的东西,或者类似的东西..

Array (
['usa'] => 2
['minnesota'] => 1
['california'] => 1
['san fransisco'] => 2
['los angeles'] => 1
['malibu'] => 3
}

【问题讨论】:

标签: php arrays


【解决方案1】:

http://www.php.net/manual/en/function.array-count-values.php

您可以使用以下代码来执行此操作:

array_count_values ($myArray)

【讨论】:

  • 是的......也打败了我,但我不会删除我的:P
  • PHP 拥有如此丰富的函数“数组”
  • 大卫 Z 第一!谢谢大家!这个 PHP 是一门语言。
【解决方案2】:

手动操作:

$new = array();
foreach($array as $key => $val) {
  if (!isset($new[$key]) {
    $new[$key] = 0;
  }
  $new[$key]++;
}

【讨论】:

    【解决方案3】:

    使用array_count_values()获取重复次数

    $array = array(...);
    $duplicate = array_count_values($array);
    

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多