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->depthforeachループの後に使えますが、1行で使いたいのですがどうすればいいですか?

4

3 に答える 3

0

親子階層のようなものを構築したい場合は、ここをクリックしてチェックする必要があります

于 2012-12-04T08:20:44.390 に答える
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>該当するすべての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++;
}


条件に基づいてさらに違いを記述する必要がある場合は、上記を次のように変更できます。

$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 に答える