У меня есть многомерный массив в формате Parent-Child.
Я хочу добавить новый идентификатор в массив.Новый идентификатор 'TTID' будет установлен в порядке Parent-Child.Это означает, что если ParentTTID
равно 1, то дочерний TTID должен быть 2, а его дочерний - 3.
Таким образом, он имеет порядок Parent->Child->CHild
.с неограниченными уровнями глубины.Теперь идентификатор узла New Parent будет начинаться с идентификатора последнего потомка, скажем, 4, а его потомка будет 5 и т. Д.
Array
(
[0] =Array
(
[id] =0
[value] =Total Income
[parent] =-1
[ttid] =1
[children] =Array
(
[0] =Array
(
[id] =2
[value] =Total Contributions
[parent] =0
[ttid] =0
[children] =Array
(
[0] =Array
(
[id] =5
[value] =Total Employers Contributions
[parent] =2
[ttid] =0
[children] =Array
(
[0] =Array
(
[id] =10
[value] =Employes unclassfied Contributions
[parent] =5
[ttid] =0
)
)
)
[1] =Array
(
[id] =1
[value] =Total Expenses
[parent] =-1
[ttid] =0
[children] =Array
(
[0] =Array
(
[id] =4
[value] =Total Benifit Payments
[parent] =1
[ttid] =0
[children] =Array
(
[0] =Array
(
[id] =9
[value] =Directly to Participant
[parent] =4
[ttid] =0
[children] =Array
(
[0] =Array
(
[id] =14
[value] =Some participant
[parent] =9
[ttid] =0
)
)
)
)
)
)
)
)
Я пытался решить эту проблему с помощью метода, в который отправляю1 идентификатор родительского узла за раз, чтобы все его дочерние элементы были отмечены.Тем не менее, это не похоже на работу, и это также дает мне предупреждение: невозможно использовать скалярное значение в качестве массива в строке
function treetable_markRowChildren($elements,$parentId,$new_id)
{
$i = 1; $arr=array();
foreach ($elements as $element)
{
if ($element['parent'] == $parentId)
$element['ttid'] = $new_id+$i; // The Error is shown in this line
$i=$i+1;
$new_id=$element['ttid'];
if(isset($element['children']))
{
$parentId=$element['id'];
$arr2= treetable_markRowChildren($element,$parentId,$new_id);
}
else
break; //No CHildren
$arr=$element;
}
return $arr;
}
Я просто хочу, чтобы TTID был установлен в этом последовательном формате,Как мне этого добиться?Заранее спасибо.
Array
(
[0] =Array
(
[id] =0
[value] =Total Income
[parent] =-1
[ttid] =1
[children] =Array
(
[0] =Array
(
[id] =2
[value] =Total Contributions
[parent] =0
[ttid] =2
[children] =Array
(
[0] =Array
(
[id] =5
[value] =Total Employers Contributions
[parent] =2
[ttid] =3
[children] =Array
(
[0] =Array
(
[id] =10
[value] =Employes unclassfied Contributions
[parent] =5
[ttid] =4
)
)
)
[1] =Array
(
[id] =1
[value] =Total Expenses
[parent] =-1
[ttid] =4
[children] =Array
(
[0] =Array
(
[id] =4
[value] =Total Benifit Payments
[parent] =1
[ttid] =6
[children] =Array
(
[0] =Array
(
[id] =9
[value] =Directly to Participant
[parent] =4
[ttid] =7
[children] =Array
(
[0] =Array
(
[id] =14
[value] =Some participant
[parent] =9
[ttid] =8
)
)
)
)
)
)
)
)