[英]How to loop through N level Sub Child Array - PHP
I have category and Sub category. 我有类别和子类别。 I have got this type of array.
我有这种类型的数组。
Can anyone help me how can I loop through n-level. 谁能帮助我如何遍历n级。
Array
(
[0] => Array
(
[question_title] => hello.
[id] => 1
[step] => 1
[Children] => Array
(
)
)
[1] => Array
(
[question_title] => bye
[id] => 2
[step] => 1
[Children] => Array
(
)
)
[2] => Array
(
[question_title] => gtg
[id] => 3
[step] => 1
[Children] => Array
(
)
)
[3] => Array
(
[question_title] => cya
[id] => 4
[step] => 1
[Children] => Array
(
)
)
[4] => Array
(
[question_title] => not sure
[id] => 5
[step] => 1
[Children] => Array
(
)
)
[5] => Array
(
[question_title] => will see
[id] => 6
[step] => 1
[Children] => Array
(
)
)
[6] => Array
(
[question_title] =>idk
[id] => 7
[step] => 2
[Children] => Array
(
)
)
[7] => Array
(
[question_title] => mayebthis
[id] => 8
[step] => 2
[Children] => Array
(
)
)
[8] => Array
(
[question_title] => maybe this one as well
[id] => 9
[step] => 2
[Children] => Array
(
[0] => Array
(
[question_title] => maybe this one too
[id] => 10
[step] => 2
[Children] => Array
(
)
)
)
)
[9] => Array
(
[question_title] => and this
[id] => 11
[step] => 2
[Children] => Array
(
[0] => Array
(
[question_title] => or this
[id] => 12
[step] => 2
[Children] => Array
(
)
)
[1] => Array
(
[question_title] =>or here too
[id] => 13
[step] => 2
[Children] => Array
(
[0] => Array
(
[question_title] => wait i am also here
[id] => 14
[step] => 2
[Children] => Array
(
)
)
[1] => Array
(
[question_title] => me as well
[id] => 15
[step] => 2
[Children] => Array
(
)
)
[2] => Array
(
[question_title] => me me scream
[id] => 16
[step] => 2
[Children] => Array
(
)
)
)
)
)
)
[10] => Array
(
[question_title] => outside here
[id] => 17
[step] => 2
[Children] => Array
(
)
)
[11] => Array
(
[question_title] => outisde here too
[id] => 18
[step] => 2
[Children] => Array
(
)
)
)
I am looping through main array, But I dont know how can I loop through Children as maybe thre can be many sub children array as well. 我正在遍历主数组,但是我不知道如何遍历子数组,因为可能还有许多子子数组。
{foreach $question_master_array as $key => $val}
{if $question_master_array[$key]['step'] == 2}
<li><input type="checkbox" name="step1_question_{$question_master_array[$key]['question_id']}">{$question_master_array[$key]['question_title']}</li>
{if $question_master_array[$key]['Children']|@count gt 0}
... some stuff here ...
{/if}
{/if}
{/foreach}
As I can't make static by just applying key to Children array as it can have n-level. 因为我不能仅通过将键应用于Children数组来使其静态,因为它可以具有n级。 Well this is my tpl file so I cant edit the queries I have brought in this format of data.
好吧,这是我的tpl文件,因此我无法编辑以这种数据格式带来的查询。
You need to recursively iterate through the array. 您需要递归遍历数组。
In example : 例如:
function recurSearch($array, $depth = 0)
{
echo ('Current depth : ' . $depth);
foreach ($array as $item)
{
echo ('id : ' . $item['id']);
echo ('question title : ' . $item['question_title']);
echo ('step : ' . $item['step']);
if (count($item['Children']) > 0)
{
echo 'child : ';
echo '{';
/*
* If $item['Children'] isn't empty,
* the function will be called again
* using $item['Children'] as main array
* That function will keep being called until $item['Children'] is empty
*/
recurSearch($item['Children'], $depth + 1);
echo '}';
}
else
{
echo ('child : no child');
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.