在关联数组中查找重复值并将它们添加到计数中

2024-06-06

您好,我正在尝试计算关联数组中重复值的数量,如下所示:

array(3) { [0]=> array(3) { ["Title"]=> string(25) "hello" 
                            ["Price"]=> int(50) 
                            ["Count"]=> int(1) }
           [1]=> array(3) { ["Title"]=> string(35) "world" 
                            ["Price"]=> int(50) 
                            ["Count"]=> int(1) } 
           [2]=> array(3) { ["Title"]=> string(25) "hello" 
                            ["Price"]=> int(50) 
                            ["Count"]=> int(1) } } 

正如您在这里看到的,“标题”标签中有一个重复的值,我想对它们进行计数并向“计数”部分添加一个。我开始做这样的事情:

$prodArray = array();

// Add the values to the array if it's the first time it occurs.
if (!in_array($row['prodTitle'], $prodArray["Title"]))
{
array_push($prodArray, 
           array( Title => $row['prodTitle'],
                  Price => $row['prodPrice'],
                  Count => 1)
          );
}
else
{
//Add one to the count for the current item.
}   

问题是我无法通过 in_array 函数访问数组中的“Title”元素。欢迎任何建议。


如果您想检测正在创建的数组中的重复项,类似这样的操作可以避免多次遍历数组:

$arr=array();
while($row = mysql_fetch_array($result))  {                  
  $arr[$row['prodTitle']] = isset($arr[$row['prodTitle']]) 
                               ? $arr[$row['prodTitle']] +1 
                               : 0;                    
}
$dups = array_keys(array_filter($arr)); //any key => 0 will be filtred out

如果你想直接通过 SQL 获取重复数据,请看一下:

您当前的查询——

SELECT prodTitle 
  FROM product 
WHERE prodTitle != '{$keyword}' 
  AND creditCard IN( SELECT creditCard FROM product WHERE prodTitle ='{$keyword}');

给出这样的数据

prod cc
A    1
A    2
A    3
A    1
A    1
B    15
B    1
B    2
B    21
C    10
C    1

返回此集合(带有 $keyword=='A'):

prod 
B
B
C

返回的聚合查询only在非 X 上使用的信用卡在 X 上也使用过至少两次的记录 --

SELECT p1.prodTitle, COUNT(p2.creditCard) AS numrecords
  FROM product p1
    JOIN product p2
    ON (p1.creditCard = p2.creditCard)
WHERE p1.prodTitle != '{$keyword}'
  AND p2.prodTitle = '{$keyword}'
GROUP BY p1.prodTitle 
  HAVING COUNT(p2.creditCard) > 1;

给定相同的数据,返回这个集合:

prod  num
B    2

进行聚合查询可以避免所有与循环有关的混乱。这是一个link http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html到 MySQL 聚合函数列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在关联数组中查找重复值并将它们添加到计数中 的相关文章

  • 基于 PHP 的 CSV 编辑器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道用 PHP 编写的在线 CSV 编辑器允许用户打开 编辑和保存给定的 CSV 文件 我能找到的只
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 使用字符串数组作为子字符串参数的 VBA InStr 函数 (Excel)

    找了很久了 第一次提问 目标 循环遍历包含地址的列 根据单元格包含的邮政编码为单元格偏移 0 6 分配一个值 城市名称 这是我到目前为止所得到的 缩短的数组长度 Sub LabelCell Dim SrchRng As Range cel
  • 将对象字面量转换为排序数组

    我有一个对象文字 其中它的键的值是多个对象 并且内部对象的键之一被命名为 rank 并且具有浮点值 我想将对象文字转换为内部对象的数组 按 rank 的值排序 输入对象 452 bla 123 dff 233 rank 2 234 bla
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • 如何在javascript中使用自动递增id?

  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN
  • 如何覆盖 phpunit 中导出的变量?

    我知道我可以设置环境变量 https phpunit de manual current en appendixes configuration html在我的 phpunit xml 里面
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • 避免 SQLite3 中的 SQL 注入

    我正在尝试找出一种避免 SQL 注入的好简单方法 到目前为止我只能提出两个想法 对用户输入进行 Base64 编码 其实不想这样做 使用正则表达式删除不需要的字符 目前正在使用这个 不确定是否100 安全 这是我当前的代码
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样

随机推荐

  • 带有 ListView 片段的 ViewPager - 指定的子项已经有父项

    因此 我首先要说的是 我看到其他几个人发布了完全相同的错误 然而 我现在已经尝试了所有十种不同的解决方案 但仍然得到完全相同的堆栈跟踪和 ANR 我使用的是标准 Tabs Swipe 模板 除了设置第一页返回 ListView 片段 我将在
  • Symfony 2 中实体管理器和 phpunit 的问题

    我的 phpunit 中的实体管理器有问题 这是我的测试 public function testValidChangeEmail client self createAuthClient user password crawler cli
  • Sublime Text 2 LatexTools 未启动 SumatraPDF

    我正在尝试在 Sublime Text 2 0 2 build 2221 中运行 LaTexTools 插件 我正在运行 64 位 Windows 8 1 计算机 LaTexTools 已安装并正在运行 它会生成一个已编译的 PDF 如果我
  • 在其他布局的 LinearLayout 中膨胀布局

    我有这个布局 ComposeView http img845 imageshack us img845 2121 d6zp png http img845 imageshack us img845 2121 d6zp png 2 个边框 左
  • 如何选择前一行值? [复制]

    这个问题在这里已经有答案了 如何从 SELECT 语句的上一个结果行获取值 例如 如果我们有一个名为 cardevent 的表 并且有行 ID int Value Money 并且其中有一些行 ID Value 1 70 1 90 2 10
  • 无法将字符串解组为 int64 类型的 Go 值

    我有结构 type tySurvey struct Id int64 json id omitempty Name string json name omitempty I do json Marshal在 HTML 页面中写入 JSON
  • MacOS X 和 iOS 中的 ASLR 究竟随机化了什么

    有谁有最新 Mac OS 10 7 和 iOS 6 0 在什么情况下随机化的文档链接 我是说 我想看一个列表 类似的东西 代码段 在情况 A B C 中 堆栈 始终 Heap 数据段 从不 最好每个东西有多少位随机化 我能找到的只是这样的内
  • Codeigniter查看和回显

    我有一个在 codeigniter 中处理网页侧栏的函数 如下 function process sidebar this gt load gt view first access 1 this gt load gt view second
  • Rails 教程 - User.rb 文件错误

    我正在关注 Railstutorial org 第 7 章 我正在尝试运行该应用程序 但出现以下代码错误 该错误表明我需要在文件末尾添加另一个 结束 但我已经尝试过此操作 但没有成功 错误是 Users woshea rails sampl
  • 如何关闭 Google Analytics for Firebase 中的数据阈值

    我需要帮助将 firebase 分析集成到我的 flutter 项目中 编写了一些自定义事件并希望使用此事件中的数据 这就是为什么我创建指标和维度但它不起作用 因为我获得了数据阈值 并收到了此消息 当启用 Google 信号并且您在指定日期
  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • 如果不使用using语句会导致IDisposable内存泄漏吗?

    如果不使用using语句会导致IDisposable内存泄漏吗 如果是这样 如果代码不多 有人可以提供内存泄漏示例吗 一个正确编写的程序 它创建实现的类型的实例IDisposable 哪个不是特别已知被遗弃后能够充分清理 must确保这件事
  • 仅当在流程中添加帐户时,Google Signin 将显示名称返回为 null

    在我当前的项目中 我实现了谷歌登录功能 登录时正在获取用户信息 在流程中 有在 google 对话框中添加帐户的选项 当用户尝试添加帐户时 我正确收到电子邮件 但显示名称为空 这是用于登录谷歌的代码 GoogleSignInOptions
  • WIX 检测待重启

    我正在使用带有 WiX 的自定义 BA 我想检测是否存在挂起的重新启动 以在用户尝试安装之前警告他们 结果却失败了 如何在 Burn WiX 中引用重新启动挂起属性 https stackoverflow com questions 108
  • Java Swing双缓冲

    我刚刚开始使用双缓冲 一切正常 直到我想向屏幕添加 JScrollPane 以便稍后我可以进行一些相机移动 除了 JScrollPane 的 ScrollBar 之外 一切都显示得很好 我的精灵 我希望他们能被展示出来 但是 如果我调整窗口
  • OptimisticConcurrencyException - SQL 2008 R2 而不是使用实体框架插入触发器

    使用 SQL 2008 R2 11 月版本数据库和 net 4 0 Beta 2 Azure 辅助角色应用程序 辅助角色收集数据并将其插入到具有一个标识列的单个 SQL 表中 由于可能会运行此辅助角色的多个实例 因此我在 SQL 表上创建了
  • 如何使用 Excel 公式将一个工作表中的单元格范围引用到另一个工作表?

    我有一个包含工作表 Sheet1 和 Sheet2 的工作表 我试图引用从 Sheet2 到 Sheet1 的一系列单元格 我知道如何引用工作表单元格 例如 Sheet2 A1但我怎样才能对单元格范围做同样的事情 例如A1 F1我试过 Sh
  • 似乎无法在 pear.bat 中设置我的 php.exe 路径

    我安装了 PEAR 当我尝试运行它时 我收到以下消息 PHP PEAR PHP BIN 设置不正确 请使用您的修复它 环境变量或者修改pear bat中的默认值 当前值为 php exe 在 pear bat 文件中 错误消息的生成如下 P
  • 如何向用户提供有关 Celery 任务执行状态的持续通知?

    我以这种方式将我的项目与芹菜集成在一起 在里面views py收到用户请求后 def upload request if POST request method save the file task parse delay continue
  • 在关联数组中查找重复值并将它们添加到计数中

    您好 我正在尝试计算关联数组中重复值的数量 如下所示 array 3 0 gt array 3 Title gt string 25 hello Price gt int 50 Count gt int 1 1 gt array 3 Tit