0
$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行使用它,我该怎么做?

4

3 回答 3

0

而不是printin-line,将所需的输出分配给变量,然后在逻辑完成后将其发送到浏览器。

$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>的 s 和诸如此类的东西来完成此操作,但这应该可以帮助您入门。

于 2012-12-04T07:20:10.573 回答
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++;
}


如果你需要根据你的情况写出更多的差异,你可以把上面的 tha 变成:

$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++;
}
于 2012-12-04T07:23:30.377 回答
0

如果你想建立类似父子层次结构的东西,那么你应该点击这里检查它

于 2012-12-04T08:20:44.390 回答