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

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

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

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

6833閲覧

foreachで取り出した配列を2つずつ、横に並べて表示させたい

shunta80

総合スコア96

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/09/01 11:47

編集2021/09/01 14:57

前提・実現したいこと

PHPでforeachで画面表示させている要素を2つずつ横並びにさせたい。

現在の並び順
配列1
配列2
配列3
配列4
配列5
となっています。
↓↓↓
配列1 配列2
配列3 配列4
配列5 配列6
となるようにしたいです。

nameとpriceのセットで1つの配列です。

発生している問題・エラーメッセージ

現在は縦1列で表示されている。

該当のソースコード

画面表示をさせている部分

<body> <ul> <?php foreach($aryPref as $value){ ?> <li><?php echo $value['name']; ?></li> <li><?php echo $value['price']; ?></li> <?php } ?> </ul> </body>

調べましたがcssを使用した横並びの方法しか取得できず
ループ処理で取り出した配列を横並びにする方法が検討がつきません。

ご回答宜しくお願い致します。

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

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

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

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

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

takasima20

2021/09/01 12:34

ul タグは変えてもいいんスか?
shunta80

2021/09/01 12:42

はい。無くても大丈夫です!
mather

2021/09/01 14:32

> nemeの横にpriceはきましたが1つ1つの配列は縦1列のままです、、 というコメントがありますが、期待する動作をもっと具体的に記述してください。 > 2つずつ横並びにさせたい。 aaa bbb aaa bbb aaa bbb ↑「2つずつ」になってますよね。 aaa aaa aaa bbb bbb bbb ↑「横並び」っていうとこういうイメージ? aaa bbb aaa bbb aaa bbb ↑こういうのが期待値なのかな?
shunta80

2021/09/01 14:40

説明が不足しており申し訳ございません。 1番上の並びにしたいです。 現在の並び順 配列1 配列2 配列3 配列4 配列5 となっています。 ↓↓↓ 配列1 配列2 配列3 配列4 配列5 配列6 となるようにしたいです。
mather

2021/09/01 14:44 編集

「配列1、配列2」は具体的に name, price を使ってどう表現されているイメージですか? - name - price というリストのことを「配列1」として表現しているのか、「nameが配列1, priceが配列2」なのか。
shunta80

2021/09/01 15:00 編集

nameとpriceで1つのの配列です。 name1 name2 price1 price 2 name3 name4 price3 price4 name5 name6 price5 price6 このようなイメージです。
guest

回答3

0

追記いただいた方法で実装ができました。
ありがとうございました。助かりました!!

投稿2021/09/01 16:58

shunta80

総合スコア96

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

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

0

ベストアンサー

横並びにしたい、というのは単に横に並べるだけ?

php

1<body> 2<div> 3 4<?php foreach($aryPref as $value){ ?> 5 6<span class="name"><?php echo $value['name']; ?></span> 7<span class="price"><?php echo $value['price']; ?></span> 8 9<?php } ?> 10 11</div> 12 13</body>

項目ごとにスタイルを当てたくなるのでは、という想定のもとクラスを付けてみました。

追記

php

1<body> 2<table> 3 4<?php foreach($aryPref as $index => $value){ ?> 5<?php if ($index % 2 == 0) { ?><tr><?php } ?> 6<td> 7 <ul> 8 <li><?php echo $value['name']; ?></li> 9 <li><?php echo $value['price']; ?></li> 10 </ul> 11</td> 12<?php if ($index % 2 == 1) { ?></tr><?php } ?> 13<?php } ?> 14 15</table> 16 17</body>

投稿2021/09/01 14:26

編集2021/09/01 15:06
mather

総合スコア6759

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

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

shunta80

2021/09/01 14:42

説明が不足しており申し訳ございません。 追記いたしましたのでご確認いただけますと幸いです。
guest

0

TABLE タグを使えばいいと思います。

php

1<body> 2<table> 3<?php foreach($aryPref as $value){ ?> 4 5<tr><td><?php echo $value['name']; ?></td> 6<td><?php echo $value['price']; ?></td></tr> 7 8<?php } ?> 9</table> 10</body>

投稿2021/09/01 13:03

takasima20

総合スコア7464

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

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

shunta80

2021/09/01 13:48

ご回答ありがとうございます。 nemeの横にpriceはきましたが1つ1つの配列は縦1列のままです、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問