首页 > 解决方案 > 计算结果数组中的字符串数

问题描述

如何使用 PHP 计算具有值“SI”的“rep_onoff”的数量,由如下数组产生?

Array (
  [0] => Array (
         [0] => NO [rep_onoff] => NO )
         [1] => Array ( [0] => SI [rep_onoff] => SI
         [2] => Array ( [0] => SI [rep_onoff] => SI )
         [3] => Array ( [0] => SI [rep_onoff] => SI )
         [4] => )

问候

标签: php

解决方案


您似乎有重复的数据,假设您可以将数组转换为如下所示:

array(
[0]=>'SI',
[1]=>'SI',
[2]=>'NO',
[3]=>'SI',
[4]=>'SI',
);

解决方案 1:您可以使用array_count_values().

$array = array([0]=>'SI', [1]=>'SI', [2]=>'NO', [3]=>'SI', [4]=>'SI',);
print_r(array_count_values($array));

这将输出如下内容:

Array
(
    [SI] => 4
    [NO] => 1
)

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

解决方案2:

如果您无法更改数据,则可以使用array_map().

function array_count_values_rep($arr)
{
    return $arr['rep_onoff'];
}

$arr = array(
    array(
        0 => 'NO',
        'rep_onoff' => 'NO',
    ),
    array(
        0 => 'SI',
        'rep_onoff' => 'SI',
    ),
    array(
        0 => 'SI',
        'rep_onoff' => 'SI',
    ),
    array(
        0 => 'SI',
        'rep_onoff' => 'SI',
    ),
    array(
        0 => 'NO',
        'rep_onoff' => 'NO',
    ),
    array(
        0 => 'SI',
        'rep_onoff' => 'SI',
    ),
    array(
        0 => 'SI',
        'rep_onoff' => 'SI',
    ),
);
$result = array_map('array_count_values_rep', $arr);
print_r(array_count_values($result));

这将输出:

Array ( [NO] => 2 [SI] => 5 )

https://www.php.net/manual/en/function.array-map.php


推荐阅读