私は現在、多次元配列に、そのカテゴリに一意に割り当てられたカテゴリの製品数のカウント (cat_count) と、その子カテゴリを含むカテゴリ内の製品の合計数を含めることができるスクリプトに取り組んでいます。
おおよそ次のような多次元配列があります。
Array
(
[0] => Array
(
[CategoryID] => 4
[CategoryName] => Cars
[ParentID] => 0
[CategoryCount] => 0
[children] => Array
(
)
)
[1] => Array
(
[CategoryID] => 1
[CategoryName] => Zoo Animals
[ParentID] => 0
[CategoryCount] => 1
[children] => Array
(
[0] => Array
(
[CategoryID] => 6
[CategoryName] => Lions
[ParentID] => 1
[CategoryCount] => 3
[children] => Array
(
)
)
[1] => Array
(
[CategoryID] => 2
[CategoryName] => Elephants
[ParentID] => 1
[CategoryCount] => 1
[children] => Array
(
[0] => Array
(
[CategoryID] => 3
[CategoryName] => African Elephants
[ParentID] => 2
[CategoryCount] => 2
[children] => Array
(
)
)
)
)
[2] => Array
(
[CategoryID] => 5
[CategoryName] => Zebra
[ParentID] => 1
[CategoryCount] => 3
[children] => Array
(
)
)
)
)
)
この配列を作成するスクリプトは次のとおりです。
public function build($d, $r = 0, $pk = 'parent', $k = 'id', $c = 'children')
{
$m = array();
foreach ($d as $e)
{
isset($m[$e[$pk]]) ?: $m[$e[$pk]] = array();
isset($m[$e[$k]]) ?: $m[$e[$k]] = array();
$m[$e[$pk]][] = array_merge($e, array($c => &$m[$e[$k]]));
}
return $m[$r];
}
今私がやりたいことは、各配列項目に追加のキーを追加することです: SumCategoryCount => // 子の数を含む各項目の合計を保持します。たとえば、「Zoo Animal」の数は 10 (1 + 3 + 1 + 2 + 3) になります。
これを行う方法がわかりません - 助けていただければ幸いです。
よろしくお願いします、
デンラウクル。