$tree = taxonomy_get_tree($vid);
print "<li>"; // 1 line
foreach ($tree as $term ) { // 2 lines
$diffdepth=0;
if ($term->depth > $depth) {
print "<ul class='haschild'><li>";
$depth = $term->depth;
}
以上是原始代码,现在我希望根据$term->depth > $depth
条件输出。(print "<li>";
)这一行。
即
if ($term->depth > $depth) {
echo '<li class="parent">';
}
else {
print "<li>";
}
但$term->depth
可以在foreach循环后使用,但我想在1行使用它,我该怎么办?
答案 0 :(得分:0)
而不是print
内联,将所需的输出分配给变量,然后在逻辑完成后将其发送到浏览器。
$tree = taxonomy_get_tree($vid);
$parent = ""; // 1 line
$child = "";
foreach ($tree as $term) { // 2 line
$diffdepth=0;
if ($term->depth > $depth) {
$parent = "<li class='parent'>";
$child .= "<ul class='haschild'><li>";
$depth = $term->depth;
} else {
$parent = "<li>";
}
}
echo $parent . $child;
请注意,您需要通过添加所有适用的</li>
和诸如此类的内容来完成此操作,但这应该可以帮助您入门。
答案 1 :(得分:0)
使用计数器:
$tree = taxonomy_get_tree($vid);
$counter = 0;
foreach ($tree as $term)
{
...
if ($term->depth > $depth)
{
if ($counter == 0) { echo '<li class="parent">'; }
else { echo '<li>'; }
print "<ul class='haschild'><li>";
$depth = $term->depth;
}
...
$counter++;
}
如果您需要根据自己的情况编写更多差异,可以将上述内容转换为:
$tree = taxonomy_get_tree($vid);
$counter = 0;
foreach ($tree as $term)
{
...
if ($term->depth > $depth)
{
if ($counter == 0) { echo '<li class="parent">'; }
print "<ul class='haschild'><li>";
$depth = $term->depth;
}
else
{
if ($counter == 0) { echo '<li>'; }
...
}
...
$counter++;
}
答案 2 :(得分:0)
如果您想构建类似父子层次结构的内容,那么您应该检查它by click here