人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記のような連想配列をつくって、パンくずリストを作成しようかとおもってますが、やりかたがいまいちわかりません。foreachをつかって、こころみているのですが、よろしくお願いいたします。

$data=
array(
1 => array(
'title' => 'top',
'url' => 'http://○○.com/',
'sub' => array(
11 => array(
'title' => '商品TOP',
'url' => '/syohin/syouhin.html',
'sub' => array(
111 => array('title' => '商品詳細',
'url' => '/syohin/syohin_search'),

)
)
)
),
2 => array(
'title' => '会社案内',
'url' => '/company/index.htm'
)
);

●質問者: zap50326
●カテゴリ:ウェブ制作
✍キーワード:HTML http:// INDEX sub TOP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tobeoscontinue
●35ポイント

配列が入れ子状態になっているので再帰にすると簡単だと思います。

function topic_list($data) {
 foreach ($data as $name=>$list) {
 echo '<a href="'.$list['url'].'">'.$list['title'].'</a>';
 if (isset($list['sub'])) {
 echo ' > ';
 topic_list($list['sub']);
 } else echo "<br>\n";
 }
}

topic_list($data);

入れ子状態にするよりは二次元配列のイメージにした方がわかりやすいと思います。

$data= array(
 array(
 array('title' => 'top','url' => 'http://○○.com/'),
 array('title' => '商品TOP','url' => '/syohin/syouhin.html'),
 array('title' => '商品詳細','url' => '/syohin/syohin_search')),
 array(
// array(), // tableでの位置合わせ用
 array('title' => '会社案内','url' => '/company/index.htm'))
);

function topic_list($data) {
 foreach ($data as $row) {
 foreach ($row as $id=>$list)
 echo (($id) ? ' > ' : '').
 '<a href="'.$list['url'].'">'.$list['title'].'</a>';
 echo "<br>\n";
 }
}

また会社案内が先頭から始まるのはおかしいように思いテーブルにしてみました。

会社案内の手前に位置合わせのたるにダミーの配列array()を追加して確認する必要があります。

function topic_list_table($data) {
 echo '<table>';
 foreach ($data as $row) {
 echo '<tr>';
 foreach ($row as $id=>$list)
 echo '<td>'.(($id) ? ' > ' : '').
 '<a href="'.$list['url'].'">'.$list['title'].'</a></td>'."\n";
 echo '</tr>';
 }
 echo '</table>';
}

http://q.hatena.ne.jp

◎質問者からの返答

ありがとうございます。ためしてみたところ表示はうまくできました。一番初めのパターンと2次元配列のパターンではよく使うのはどちらですか?


2 ● tobeoscontinue
●35ポイント

>一番初めのパターンと2次元配列のパターンではよく使うのはどちらですか?

すいません。私自身、パンくずリストというものは使っていないので判らないです。


ただ2次元配列のパターンの方が私は理解しやすいです。

http://q.hatena.ne.jp ダミー

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ