【问题标题】:PHP: How to count same values in multidimensional arrayPHP:如何计算多维数组中的相同值
【发布时间】:2021-08-05 09:52:15
【问题描述】:

我想在数组中计算相同的 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
    )
)

我会在下表中显示:

DIAGNOSA COUNT
ISPA 3
Hipertensi 2
Vertigo 2

我该怎么做呢?

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    试试这段代码!

    $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;
                }
            }
        }
    

    结果将在详细数组中

    【讨论】:

    • 非常感谢@Sterko,你太棒了。
    • @AsyahSinaga 欢迎您,将此答案标记为正确!
    猜你喜欢
    • 2014-10-03
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2012-06-26
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多