计算数组php数组中的相似值,并在新数组中添加唯一值

我在php阵列上使用某些算法遇到了问题。这是在几个日志文件上执行grep之后将其存储在数组中的一种示例。可能更长,每个元素都是grep的结果,具体取决于文件夹中日志文件的数量。

(
    [0] => Array
        (
            [0] => : [POST] /api_v2/resources/new_service_indexes

            [1] => : [POST] /api_v2/resources/new_service_tree_categories

            [2] => : [POST] /api_v2/users/add_device

            [3] => : [POST] /api_v2/users/check_email

        )

    [1] => Array
        (
            [0] => : [GET] /api_v2/resources/categories

            [1] => : [POST] /api_v2/resources/new_service_indexes

            [2] => : [POST] /api_v2/resources/new_service_tree_categories

            [3] => : [POST] /api_v2/users/add_device

            [4] => : [POST] /api_v2/users/check_email

            [5] => : [POST] /api_v2/users/facebook_login

            [6] => : [POST] /api_v2/users/login

            [7] => : [POST] /api_v2/users/register


        )

    [2] => Array
        (
            [0] => : [POST] /api_v2/resources/new_service_indexes

            [1] => : [POST] /api_v2/resources/new_service_tree_categories

            [2] => : [POST] /api_v2/users/add_device

            [3] => : [POST] /api_v2/users/facebook_login

            [4] => : [POST] /api_v2/users/login

        )
)

我想在删除所有键之前对所有键进行计数,并获得一个包含唯一键和计数的新数组。示例:

        (
            [name] => : [GET] /api_v2/resources/categories
            [count] => : 2

            [name] => : [POST] /api_v2/resources/new_service_indexes
            [count] => : 3

            [name] => : [POST] /api_v2/resources/new_service_tree_categories
            [count] => : 5

            [name] => : [POST] /api_v2/users/add_device
            [count] => : 2 

            [name] => : [POST] /api_v2/users/check_email
            [count] => : 2

            [name] => : [POST] /api_v2/users/facebook_login
            [count] => : 6

            [name] => : [POST] /api_v2/users/login
            [count] => : 2

            [name] => : [POST] /api_v2/users/register
            [count] => : 2

        )

wangdaren1 回答:计算数组php数组中的相似值,并在新数组中添加唯一值

您可以展平数组并计算值:

$result = array_count_values(array_merge(...$array));

应产生类似以下内容的

Array (
            [ : [GET] /api_v2/resources/categories] => 2
            [ : [POST] /api_v2/resources/new_service_indexes] => 3
)

显示的结果数组是不可能的,除非它也是二维的。为此:

foreach($result as $key => $val) {
    $new_result[] = ['name' => $key,'count' => $val];
}

但是在执行grep时合并数组可能会更容易,但是您不会显示该代码。您可以使用该代码问另一个问题,以获得更好的数组格式或最终结果。

本文链接:https://www.f2er.com/3136939.html

大家都在问