質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

657閲覧

if文で奇数、偶数と異なるHTMLを出力する方法

nanashissss

総合スコア60

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/08/10 02:31

以下のように多次元配列をリストタグに対してキーhogeがある分だけ<li>内にforeachで出力してました。
ですが、一部のページだけ<li>タグにクラス名が奇数、偶数とバラバラに入ってます。
こちらに対してif文で奇数なら<li class="lh1 own odd">、偶数なら <li class="lh1 own">としてforeachで出力したいです。
レクチャー頂ければ幸いです。

$navlist = [ 'hoge' => [ '<a href="hoge.html">hoge</a>', '<a href="hoge.html">hoge2</a>', ], 'hoge2' => [ '<a href="hoge.html">hoge</a>', '<a href="hoge.html">hoge2</a>', ], ] ];
<h3>hoge</h3> <ul> <?php foreach($navlist['hoge'] as $key=>$vals):?> <li><?php echo $vals ?></li> <?php endforeach; ?> </ul>

一部の<li>タグにクラス名がバラバラに入ってるからマークアップ

<li class="lh1 own odd"><a href="hoge">hoge</a></li> <li class="lh1 own"><a href="hoge">hoge</a></li> <li class="lh1 own odd"><a href="hoge">hoge</a></li> <li class="lh1 own"><a href="hoge">hoge</a></li>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

クラスを入れるのがスタイルの問題なのであれば、PHPで対応せずにCSSの:nth-child(even):nth-child(odd)でスタイルの方を振り分ける、という選択肢もあります。

投稿2022/08/10 02:39

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanashissss

2022/08/10 02:52

cssでも可能なんですね。ありがとうございます。
guest

0

ご掲示いただいたソース内の「foreach」の「$key」に参照中の配列のインデックスが入っています。

php

1foreach($navlist['hoge'] as $key=>$vals)

このインデックスを「$key % 2」として、結果が「0」であれば奇数行、「1」になれば偶数行の処理を記載するとよいかと思います。

投稿2022/08/10 02:37

Matsumon0104

総合スコア1005

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanashissss

2022/08/10 02:52

レクチャーありがとうございます。
guest

0

ベストアンサー

countをとり2でmodした結果が0なら偶数、1なら奇数です。

php

1<?php 2<?php 3$navlist = [ 4 'hoge' => [ 5 '<a href="hoge.html">hoge</a>', 6 '<a href="hoge.html">hoge2</a>', 7 ], 8 'hoge2' => [ 9 '<a href="hoge.html">hoge</a>', 10 '<a href="hoge.html">hoge2</a>', 11 ], 12]; 13 14$count = 1; 15 16?> 17<!DOCTYPE html> 18<html lang="ja"> 19<head> 20 <meta charset="UTF-8"> 21 <title>Document</title> 22</head> 23<body> 24 <h3>hoge</h3> 25 <ul> 26 <?php foreach ($navlist['hoge'] as $key=>$vals): 27 $odd = $count % 2 == 1 ? ' odd' : ''; 28 $count++; 29 ?> 30 <li class="lh1 own<?=$odd?>"><?php echo $vals ?></li> 31 <?php endforeach; ?> 32 </ul> 33</body> 34</html>

投稿2022/08/10 02:36

編集2022/08/10 02:43
RiaFeed

総合スコア2701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanashissss

2022/08/10 02:52

ソースコードのご提示ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問