🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

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

Q&A

2回答

800閲覧

foreach内の要素を一つづつ取り出したい

mkscia

総合スコア18

PHP

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

0グッド

0クリップ

投稿2019/09/06 01:50

質問です。
phpのforeachを使って要素を一つづつ取り出したいです。
例えばデータを入力するファイル(prolile.php)を作っておいて、情報を取り出したいindex.phpの方に

$prolife=[       $name='田中'; $age='28'; $text='こんにちは'; ] foreach($prolife as $value){ } <h2>田中さんのプロフィール</h2> <h3><?php echo $name ?></h3> <p><?php echo $age.'歳' ?></p> <p><?php echo $text ?></p>

というようにhtmlに組み込みたいです。

この場合のforeach文の書き方、またprofile.phpからindex.phpへの渡し方などアドバイスいただだけないでしょうか。

またこのような配列を田中、佐藤、鈴木...のように各それぞれ一つの配列に入れたい場合の書き方なども教えていただけると幸いです。

(例)

$profile=[ $name=>'田中','佐藤','鈴木'; $age=>'28','31','24'; $text=>'こんにちは','よろしくお願いします','おはよう'; ] <h2>田中さんのプロフィール</h2> <h3><?php echo $name ?></h3> <p><?php echo $age.'歳' ?></p> <p><?php echo $text ?></p> <h2>佐藤さんのプロフィール</h2> <h3><?php echo $name ?></h3> <p><?php echo $age.'歳' ?></p> <p><?php echo $text ?></p> <h2>鈴木さんのプロフィール</h2> <h3><?php echo $name ?></h3> <p><?php echo $age.'歳' ?></p> <p><?php echo $text ?></p>

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

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

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

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

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

guest

回答2

0

文法もロジックもデータ構造もおかしいので命題の流れで処理はできないし
もしできてもロクでもない処理になります。
まずはデータの持ち方をきちんと理解されたほうが良いいでしょう。

そもそもh2にスタティックに入っているデータがあるなら
もうforeach処理では対応しがたいでしょう

sample

PHP

1<?PHP 2$profile=[ 3 ["name"=>'田中',"age"=>28,"text"=>'こんにちは',], 4 ["name"=>'佐藤',"age"=>31,"text"=>'よろしくお願いします',], 5 ["name"=>'鈴木',"age"=>24,"text"=>'おはよう',], 6 ]; 7 8$getProf=function($name,$key) use($profile){ 9 $idx= array_keys(array_filter($profile,function($x) use($name,$key){ 10 return $x["name"]==$name; 11 })); 12 return count($idx)>0?$profile[$idx[0]][$key]:null; 13}; 14?> 15<h2>田中さんのプロフィール</h2> 16<h3><?=$getProf("田中","name");?></h3> 17<p><?=$getProf("田中","age");?></p> 18<p><?=$getProf("田中","text");?></p> 19 20<h2>佐藤さんのプロフィール</h2> 21<h3><?=$getProf("佐藤","name");?></h3> 22<p><?=$getProf("佐藤","age");?></p> 23<p><?=$getProf("佐藤","text");?></p> 24 25<h2>鈴木さんのプロフィール</h2> 26<h3><?=$getProf("鈴木","name");?></h3> 27<p><?=$getProf("鈴木","age");?></p> 28<p><?=$getProf("鈴木","text");?></p> 29 30<h2>高橋さんのプロフィール</h2> 31<h3><?=$getProf("高橋","name");?></h3> 32<p><?=$getProf("高橋","age");?></p> 33<p><?=$getProf("高橋","text");?></p>

投稿2019/09/06 02:10

編集2019/09/06 02:45
yambejp

総合スコア116690

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

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

m.ts10806

2019/09/06 05:56 編集

〇〇さんのプロフィール・・・ も1ブロック一式foreachで出すのかと思ってました。 要件の書き方ですかね・・
guest

0

きちんと対応を作る必要があるとして、配列的にはこんな感じでしょうか。

php

1$profile = [ 2 [ 3 'name'=>'田中', 4 'age'=>28, 5 'text'=>'こんにちは', 6 ], 7 [ 8 'name'=>'佐藤', 9 'age'=>31, 10 'text'=>'よろしくお願いします', 11 ], 12 //以下略 13];

データベースの「行と列」の考え方です。

Excelなどで表を作ってみるとイメージしやすいかもしれません。
イメージ説明

上記の表をPHPの配列にしたのが最初に提示したコードです(No.のところは書いてないですが)

この場合のforeach文の書き方、またprofile.phpからindex.phpへの渡し方などアドバイスいただだけないでしょうか。

profile.phpがどこまでの役割を想定されているか分かりませんが、
配列を定義だけしておいてindex.phpでinclude()すると良いのではないでしょうか。

投稿2019/09/06 01:57

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問