如何从多维数组中计算特定键值?

问题描述 投票:-4回答:1

我有一个供应商数据数组,以树状结构列出,每个供应商都有一个类型。

这些是供应商的类型及其ID:

  • 代理商= 1
  • 分支机构= 2
  • 批发商= 3
  • Smartshop = 4

示例:['type']=>2(此供应商是分支机构)。

我的问题是:如何获得分支机构的数量,包括批发商和智能商店的数量?

所需结果:

[[2 => 2,3 => 2,4 => 1]

这是我动态生成的数组:

排列([2] =>数组([id] => 2[类型] => 2[名称] => R-1代理商[父母] => 1[children] =>数组([3] =>数组([id] => 3[类型] => 3[名称] => R-1-W-1[父母] => 2[children] =>数组([11] =>数组([id] => 11[类型] => 4[名称] => mdf,lk[父母] => 3[children] =>数组())))))[38] =>数组([id] => 38[类型] => 2[名称] => sndflk[父母] => 1[children] =>数组([40] =>数组([id] => 40[类型] => 3[名称] =>新的[父母] => 38[children] =>数组()))))

我使用了此功能:

function take_types($array){
    foreach ($array as $key => $value) {
        $types[] = $value['type'];
        if(!empty($value['children'])){
            $this->take_types($value['children']);
        }
    }
    return $types;
}

当我使用上述功能时,输出如下:

排列([0] => 2[1] => 2)

我只有两个值,我需要获取每个供应商类型的数量。

php arrays recursion multidimensional-array counting
1个回答
0
投票

将有许多技术来递归处理树数据。我将提供本机函数样式和自定义递归样式。

© www.soinside.com 2019 - 2024. All rights reserved.