0

print_r($ breadcrumb)を実行すると、次のようなphpの配列があります。

Array (
    [url] => /category/
    [text] => Category
)
Array (
    [url] => /category/subcategory/
    [text] => Subcategory
)
Array (
    [url] => /category/subcategory/subsubcategory/
    [text] => Subsubcategory
)

このブレッドクラムを次のように表示したい

Category > Subcategory > Subsubcategory

Googleドキュメントによると、HTMLは次のようになります。

<div xmlns:v="http://rdf.data-vocabulary.org/#"> 
  <span typeof="v:Breadcrumb">
    <a href="/category/" rel="v:url" property="v:title">
      Category
    </a> ›
    <span rel="v:child">
      <span typeof="v:Breadcrumb">
        <a href="/category/subcategory/" rel="v:url" property="v:title">
          Subcategory
        </a> ›
        <span rel="v:child">         
          <span typeof="v:Breadcrumb">
            <a href="/category/subcategory/subsubcategory/" rel="v:url" property="v:title">
              Subsubcategory
            </a> ›          
          </span>
        </span>
      </span>
    </span>
  </span>
</div>

PHP配列からHTMLに移行するにはどうすればよいですか?

他の答えを見てきましたが、私のシナリオでは機能しません

4

1 に答える 1

1

これが私がこれについて行く方法です:

PHP:

<?php
    $breadcrumb = array(
        array(
            'url' => '/category/',
            'text' => 'Category'
        ),
        array(
            'url' => '/category/subcategory/',
            'text' => 'Subcategory'
        ),
        array(
            'url' => '/category/subcategory/subcategory',
            'text' => 'Subsubcategory'
        )
    );
    $children = count($breadcrumb) - 1;
?>

表示マークアップ:

<div xmlns:v="http://rdf.data-vocabulary.org/#">
    <span typeof="v:Breadcrumb">
        <?php for ($i = 0; $i < count($breadcrumb); $i++) : ?>
        <?php if ($i == 0) : ?>
        <a href="<?php echo $breadcrumb[0]['url']; ?>" rel="v:url" property="v:title"><?php echo $breadcrumb[0]['text']; ?></a> › 
        <?php else : ?>
        <span rel="v:child">
            <span typeof="v:Breadcrumb">
                <a href="<?php echo $breadcrumb[$i]['url']; ?>" rel="v:url" property="v:title"><?php echo $breadcrumb[$i]['text']; ?></a> ›
        <?php endif; ?> 
        <?php endfor; ?>
        <?php echo str_repeat("</span>\r\n</span>\r\n", $children); ?>
    </span>
</div>

このアプローチでは、必要に応じてより深いサブカテゴリも許可されます。

それが役に立てば幸い

更新された表示コード:

<div xmlns:v="http://rdf.data-vocabulary.org/#">
    <span typeof="v:Breadcrumb">
        <?php for ($i = 0; $i < count($breadcrumb); $i++) : ?>
        <?php if ($i == 0) : ?>
        <a href="<?php echo $breadcrumb[0]['url']; ?>" rel="v:url" property="v:title"><?php echo $breadcrumb[0]['text']; ?></a> › 
        <?php else : ?>
        <span rel="v:child">
            <span typeof="v:Breadcrumb">
                <a href="<?php echo $breadcrumb[$i]['url']; ?>" rel="v:url" property="v:title"><?php echo $breadcrumb[$i]['text']; ?></a><?php if ($i < $children):?> › <?php endif; ?>
        <?php endif; ?> 
        <?php endfor; ?>
        <?php echo str_repeat("</span>\r\n</span>\r\n", $children); ?>
    </span>
</div>

上記のコードは、最後の>記号を最後から削除します:)

于 2013-03-08T10:48:13.263 に答える