ホームページ > バックエンド開発 > PHPチュートリアル > データを取得したらこの形に並べる方法!

データを取得したらこの形に並べる方法!

WBOY
リリース: 2016-06-23 14:38:15
オリジナル
909 人が閲覧しました




しかし、これは間違いなく間違っていますが、論理が非常にわかりにくいので、誰か教えてください。大したことではありませんが、同じ考えです。
間違ったものを書きました:

<?php foreach($catelist as $k=>$v){?> //循环大分类<div class="catemenu"><div class="cname"><?php echo $v['cate_name'];?></div><ul><?phpforeach($catlist as $kk=>$vv){ //循环小分类if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类?><li><a href="<?php echo $vv['url'];?>"><?php echo $vv['cate_name'];?></a><div class="clr"></div></li><?php } } ?></ul></div><?php }?>
ログイン後にコピー



以下は画像のHTMLです:
<div class="catemenu"><a href=""><div class="cname"><img src="1.png" />酒店宾馆</div></a><ul>  <li><a href="">新安东阁</a><a href="">七经街店</a><a href="">锦山大街店</a><a href="">江城大街店</a><div class="clr"></div></li><li><a href="1">皇冠假日</a><a href="">汉庭步行街</a><a href="">月光百合</a><a href="">万家酒店</a><div class="clr"></div></li>         <li><a href="">凯日达宾馆</a><a href="">艺海宾馆</a><a href="">荣汇酒店</a><a href="">龙苑温泉</a><div class="clr"></div></li>         <li><a href="">汉庭站前店</a><a href="">7天连锁</a><a href="">子木屋日租</a><a href="">假日阳光</a><div class="clr"></div></li>         <li><a href="">中联酒店</a><a href="">高尔夫会所</a><a href="">尚客优快捷</a><a href="">莱弗仕酒店</a><div class="clr"></div></li>         <li><a href="">长城宾馆</a><a href="">丽兹卡尔森</a><a href="">虎跃酒店</a><a href="">阿里郎宾馆</a><div class="clr"></div></li><li><a href="">皇家凯旋</a><a href="">董姐旅馆</a></ul></div><div class="catemenu"><a href=""><div class="cname"><img src="2.png" />便民工具</div></a><ul><li><a href="">火车余票</a><a href="">航班查询</a><a href="">快递查询</a><a href="">艺龙酒店预定</a><div class="clr"></div></li><li><a href="">彩票开奖</a><a href="">下厨房</a><a href="">爱星座</a><a href="">医药在线资讯</a><div class="clr"></div></li><li><a href="">塔罗占卜</a></ul></div>
ログイン後にコピー


ディスカッションへの返信(解決策)

親クラスと子クラスは同じレベルですか?
$catelist の構造がどのようなものかを投稿してください。

親クラスとサブクラスは同じレベルですか?
$catelist の構造がどのようなものかを投稿してください。

$query=$db->query("select * from cate where weixin_id='".$weixin_id."' and display = 1 and parentid = 0 order by sortorder ASC");$rows=$db->fetch_array($query)$catelist[]=$rows;
ログイン後にコピー

小さなカテゴリをループするときに、小さなカテゴリがまだ $catlist である必要があるのはなぜですか?

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ループするときに、小さなカテゴリがまだ $catlist であるはずです。小さなカテゴリを介して

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


それらは同じレベルにあるため、サブカテゴリをマークするためにフィールドのみが使用されます
そのため、カテゴリが親カテゴリと等しいという判断が下にあります
if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类
ログイン後にコピー
ログイン後にコピー

それから、あなたのロジックには何も問題はありません。何かエラーを報告しましたか?結果はどうなるでしょうか?

では、あなたの論理には何の問題もないはずです。あなたのレポートには何か問題がありますか?結果はどうなるでしょうか?

結果、写真のようなスタイルは載せられません

父と息子の上下関係は正しいでしょうか?スタイルが間違っているだけなら、それは HTML の問題です


小さなカテゴリは大きなカテゴリにあるはずですが、なぜ小さなカテゴリをループするときに $catlist のままなのでしょうか?

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


同じレベルにあるからです。 、サブカテゴリをマークするためにフィールドのみが使用されます
そのため、判定カテゴリは親カテゴリと同じです

ロジックに問題はありません。

大きなカテゴリの下にある 4 つのサブカテゴリはそれぞれ 1 つの
  • なので、

    だから、私が今書いていることは、書き方がわからないからです

    この投稿は、2013-11-27 20:23:23 に編集者 xuzuning によって最終的に書かれました

    foreach($catelist as $k=>$v){?> //大分類のループ

    foreach($catlist as $ kk=>$vv) { //ループ小分類
    }}
    データはどのように整理されていますか?
    小カテゴリは、対応する大カテゴリの下にグループ化されるべきではないでしょうか?
    あなたがそうしているようにデータを整理すると、小さな分類を繰り返すのに多くの非効率な作業が必要になりませんか?

    最初のステップ
    if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类
    ログイン後にコピー
    ログイン後にコピー

    2 番目のステップ
    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    は、わかりやすくするためにコードを簡略化しています
    要点だけ言っておきます

    foreach($catelist as $k=>$v){?> //Looplarge分類

    foreach ($catlist as $kk=>$vv){ //小さなカテゴリをループ
    }}
    データはどのように整理されていますか?
    小カテゴリは、対応する大カテゴリの下にグループ化されるべきではないでしょうか?
    あなたがそうしているようにデータを整理すると、小さな分類を繰り返すのに多くの非効率な作業が必要になりませんか?

    最初のステップ

    foreach($catelist as $k=>$v){ //循环大分类  //输出大分类数据  $t = $new_catlis[$v['cate_id']]; //取回自己的小分类数据  $t = array_chunk($t, 4); //按4个一组切开  echo '<ul>';  foreach($t as $x) {    echo '<li>' . join('', $x) . '</li>';  }  echo '</ul>';  //输出大分类剩余数据}
    ログイン後にコピー
    ログイン後にコピー

    第 2 のステップ
    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    は、わかりやすくするためにコードを簡略化しました
    意味が通じる限り
    マスター、なぜ簡略化するのですか、簡略化せずに理解できれば良いのですが? $new_catlist[$vv['parentid' ]][] = $vv; ここに [][] が 2 つあるのはなぜですか?初心者の方、アドバイスをお願いします

    if ($vv['parentid']==$v['cate_id']){ //小カテゴリの親カテゴリを判断します

    したがって、任意の $vv['parentid'] と大カテゴリ $v['cate_id'] は等しく、同じカテゴリに属します
    したがって、$vv['parentid'] の値を小カテゴリをクラスタリングするためのキーとして使用できます
    $k = $vv['parentid' ];
    $new_catlist[$ k][] = $vv;
    $new_catlist[$vv['parentid']] = $vv;

    foreach($k=>$) v){?> / /大きなカテゴリをループします

    foreach($catlist as $kk=>$vv){ //小さなカテゴリをループします
    }}
    データはどのように整理されていますか?
    小カテゴリは、対応する大カテゴリの下にグループ化されるべきではないでしょうか?
    あなたがそうしているようにデータを整理すると、小さな分類を繰り返すのに多くの非効率な作業が必要になりませんか?

    最初のステップ

    foreach($catelist as $k=>$v){ //循环大分类  //输出大分类数据  $t = $new_catlis[$v['cate_id']]; //取回自己的小分类数据  $t = array_chunk($t, 4); //按4个一组切开  echo '<ul>';  foreach($t as $x) {    echo '<li>' . join('', $x) . '</li>';  }  echo '</ul>';  //输出大分类剩余数据}
    ログイン後にコピー
    ログイン後にコピー

    第 2 のステップ
    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    は、わかりやすくするためにコードを簡略化しました
    意味が通じる限り
    マスター、なぜ簡略化するのですか、簡略化せずに理解できれば良いのですが? $new_catlist[$vv['parentid' ]][] = $vv; ここに [][] が 2 つあるのはなぜですか?私は初心者なので、いくつか指導してください
    PHP の配列処理について見てみることをお勧めします。

  • ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート