php - PHP:如何计算多维数组中的相同值
问题描述
我想在数组中计算相同的 DIAGNOSA 值:
Array
(
[0] => Array
(
[NIK_PASIEN] => 6005
[DIAGNOSA] => ["Hipertensi","ISPA"]
)
[1] => Array
(
[NIK_PASIEN] => 6163
[DIAGNOSA] => ["ISPA"]
)
[2] => Array
(
[NIK_PASIEN] => 5853
[DIAGNOSA] => ["Hipertensi","ISPA","Vertigo"]
)
[3] => Array
(
[NIK_PASIEN] => 5613
[DIAGNOSA] => ["Vertigo"]
)
)
如何使其转换为如下数组?
Array
(
[0] => Array
(
[DIAGNOSA] => ISPA
[COUNT] => 3
)
[1] => Array
(
[DIAGNOSA] => Hipertensi
[COUNT] => 2
)
[2] => Array
(
[DIAGNOSA] => Vertigo
[COUNT] => 2
)
)
我将在下表中显示它:
诊断 | 数数 |
---|---|
ISPA | 3 |
希佩尔滕西 | 2 |
眩晕 | 2 |
我该怎么做?
解决方案
试试这段代码!
$array = [
['NIK_PASIEN'=>6005,'DIAGNOSA'=>["Hipertensi","ISPA"]],
['NIK_PASIEN'=>6163,'DIAGNOSA'=>["ISPA"]],
['NIK_PASIEN'=>5853,'DIAGNOSA'=>["Hipertensi","ISPA","Vertigo"]],
['NIK_PASIEN'=>5613,'DIAGNOSA'=>["Vertigo"]],
];
$detailed = [];
foreach ($array as $ar) {
foreach ($ar['DIAGNOSA'] as $key) {
$original_key = array_search($key, array_column($detailed, 'DIAGNOSA'), true);
if ($original_key !== false) {
$detailed[$original_key]['COUNT'] += 1;
} else {
$temp['DIAGNOSA'] = $key;
$temp['COUNT'] = 1;
$detailed[] = $temp;
}
}
}
结果将在详细数组中
推荐阅读
- python - 如何从 Python 连接到 Netezza 数据库?
- angular - 动态渲染的 mat-expansion-panel 未按预期工作
- sql - SQL SERVER 2016 慢插入
- c - 不知道为什么我不能在第 112 行打印成本。它说
- python - 为什么在我告诉它 POST 之后请求使用 GET?
- kotlin - 如何使用 HttpRequest.sendStream() 获取上传文件的状态?
- javascript - 使用带有可变根元素的解析 JSON 的 JavaScript 对象
- netsuite - Netsuite 项目搜索 - 目标:显示可用数量非零的项目
- c# - 字符串根据条件拆分
- selenium - VSTS (Azure DevOps) 中的 Selenium 屏幕截图