我正在尝试让函数打印每个父项中的子项目数,但似乎无法使其工作。出于某种原因,print_r(count($arr[$key]['children']))
首先输出,然后循环遍历其余部分并将数字1放在应该返回计数的位置。
function create_list($arr)
{
$html = "";
foreach($arr as $key => $value) {
if(count($value['children']) > 0) {
$html .= $value['name'].' (' . print_r(count($arr[$key]['children'])) . ')<ul>';
foreach($value['children'] AS $child) {
$html .= ' <li><a id="'.$child['menu_item_id'].'">'.$child['name'].'</a></li>';
}
$html .= ' </ul>
';
} else{
$html .= ' <a class="menuitem" id="'.$value['menu_item_id'].'">'.$value['name'].'</a>';
}
}
return $html;
}
echo create_list($menu_items);
输出以下内容:
22Main Task (1)
o second task
o sub task
George (1)
o test
o tester
如果它表示22MainTask,则22是每个根级别项目的计数结果。什么是返回计数的正确方法?我希望能够打印(2/5)任务完整类型,但如果我至少可以让它返回一个准确的计数,这将是一个伟大的第一步。
答案 0 :(得分:1)
添加第二个参数以返回值,而不是立即打印它。
print_r($ data,true)
在您的示例中,它会打印&#34; 1&#34;因为如果你不提供第二个参数为true,print_r会返回true(转换为&#34; 1&#34;)。