怎么写条件?

时间:2012-12-04 07:08:27

标签: php

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

3 个答案:

答案 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