<?php
$arr = [array (
'category' =>
array (
'categoryId' => 34,
'categoryName' => 'Advertising',
),
'categoryTreeNodeLevel' => 2,
'childCategoryTreeNodes' =>
array (
0 =>
array (
'category' =>
array (
'categoryId' => 35,
'categoryName' => 'Other Advertising',
),
'categoryTreeNodeLevel' => 3,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
1 =>
array (
'category' =>
array (
'categoryId' => 36,
'categoryName' => 'Drinks',
),
'categoryTreeNodeLevel' => 3,
'childCategoryTreeNodes' =>
array (
0 =>
array (
'category' =>
array (
'categoryId' => 13601,
'categoryName' => 'Coca Cola',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
1 =>
array (
'category' =>
array (
'categoryId' => 13613,
'categoryName' => 'Pepsi',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
2 =>
array (
'category' =>
array (
'categoryId' => 20189,
'categoryName' => 'Other Drinks Advertising',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
),
'parentCategoryTreeNodeHref' => 'someurl',
),
2 =>
array (
'category' =>
array (
'categoryId' => 804,
'categoryName' => 'Signs',
),
'categoryTreeNodeLevel' => 3,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
3 =>
array (
'category' =>
array (
'categoryId' => 821,
'categoryName' => 'Distillery/Spirits',
),
'categoryTreeNodeLevel' => 3,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
4 =>
array (
'category' =>
array (
'categoryId' => 1313,
'categoryName' => 'Transportation',
),
'categoryTreeNodeLevel' => 3,
'childCategoryTreeNodes' =>
array (
0 =>
array (
'category' =>
array (
'categoryId' => 69513,
'categoryName' => 'Aeronautica',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
1 =>
array (
'category' =>
array (
'categoryId' => 69514,
'categoryName' => 'Petrol/Oil',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
2 =>
array (
'category' =>
array (
'categoryId' => 69515,
'categoryName' => 'Other Transportation Advert',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
3 =>
array (
'category' =>
array (
'categoryId' => 90648,
'categoryName' => 'Railway',
),
'categoryTreeNodeLevel' => 4,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
),
'parentCategoryTreeNodeHref' => 'someurl',
),
5 =>
array (
'category' =>
array (
'categoryId' => 1525,
'categoryName' => 'Chemist',
),
'categoryTreeNodeLevel' => 3,
'leafCategoryTreeNode' => 1,
'parentCategoryTreeNodeHref' => 'someurl',
),
),
)];
$data = flattenCategoryNodeTree($arr);
var_dump($data);
function flattenCategoryNodeTree($data, $flattened = [], $categoryName = [])
{
foreach($data as $node) {
if(array_key_exists('childCategoryTreeNodes', $node)) {
$categoryName[] = $node['category']['categoryName'];
$flattened = flattenCategoryNodeTree($node['childCategoryTreeNodes'], $flattened, $categoryName);
continue;
} else {
$flattened[$node['category']['categoryId']] = implode('::', array_merge($categoryName, [$node['category']['categoryName']]));
}
}
return $flattened;
}
preferences:
51.21 ms | 402 KiB | 5 Q