У меня есть массив данных поставщика, указанный в виде древовидной структуры, и у каждого поставщика есть тип.
Это типы поставщиков и его идентификатор:
- Агентство = 1
- Филиал = 2
- Продавец = 3
- Smartshop = 4
Пример: ['type']=>2
(здесь этот поставщик является филиалом).
Мой вопрос: как я могу получить количество филиалов в этом массиве, такое же количество оптовиков и смарт-магазинов?
Желаемый результат:
[2 => 2, 3 => 2, 4 => 1]
Вот мой динамический сгенерированный массив:
Array
(
[2] => Array
(
[id] => 2
[type] => 2
[name] => R-1 Agency
[parent] => 1
[children] => Array
(
[3] => Array
(
[id] => 3
[type] => 3
[name] => R-1-W-1
[parent] => 2
[children] => Array
(
[11] => Array
(
[id] => 11
[type] => 4
[name] => mdf,lk
[parent] => 3
[children] => Array
(
)
)
)
)
)
)
[38] => Array
(
[id] => 38
[type] => 2
[name] => sndflk
[parent] => 1
[children] => Array
(
[40] => Array
(
[id] => 40
[type] => 3
[name] => new one
[parent] => 38
[children] => Array
(
)
)
)
)
)
Я использовал эту функцию:
function take_types($array){
foreach ($array as $key => $value) {
$types[] = $value['type'];
if(!empty($value['children'])){
$this->take_types($value['children']);
}
}
return $types;
}
КогдаЯ использую вышеупомянутую функцию, вывод выглядит так:
Array
(
[0] => 2
[1] => 2
)
Я получаю только два значения, мне нужно получить счетчик каждого типа поставщика.