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

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

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

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

Q&A

解決済

2回答

4994閲覧

連想配列にフィルタをかけ、テーブル表示させたい

qzkb4g1010

総合スコア21

PHP

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

0グッド

0クリップ

投稿2017/04/20 19:30

編集2017/04/20 19:33
<?php $data = array( 1=>array("name"=>'ジョン',"gender"=>'男',"graduate"=>'アメリカ'), 2=>array("name"=>'加藤',"gender"=>'女',"graduate"=>'日本'), 3=>array("name"=>'エミリー',"gender"=>'女',"graduate"=>'アメリカ'), 4=>array("name"=>'山田',"gender"=>'男',"graduate"=>'日本'), 5=>array("name"=>'トム',"gender"=>'男',"graduate"=>'アメリカ'), ); echo '<form method="get" action="URL"> <select name="graduate"> <option value="未選択">未選択</option> <option value="日本">日本</option> <option value="アメリカ">アメリカ</option> </select> <input type="submit" value="送信"> </form>'; $element = $_GET['graduate']; echo $element; ?>

上記スクリプト内に用意したセレクトタグを用いて、性別をGETで渡し、選択した性別で$dataにフィルタをかけ、テーブル形式で一覧表示させたいのですが、どのようにアプローチすればできるかわかる方教えてください。。。

当方初学者で、まだまだわからないことだらけですので、なるべく難しい関数などは使わず、基本的なことだけで説明していただけると助かります!

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

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

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

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

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

guest

回答2

0

array_filter を使ってみてください。

【PHPでよく使う配列操作まとめ - Qiita】
http://qiita.com/IganinTea/items/de6201fe860a65e192a1#特定の条件の要素のみの絞り込み

【[ PHP ] 配列の要素をフィルタリングする ( array_filter ) – 行け!偏差値40プログラマー】
http://hensa40.cutegirl.jp/archives/1515


PHP

1$graduate = filter_input( INPUT_GET, 'graduate' ); // ex) アメリカ 2$data = array( 3 1=>array("name"=>'ジョン',"gender"=>'男',"graduate"=>'アメリカ'), 4 2=>array("name"=>'加藤',"gender"=>'女',"graduate"=>'日本'), 5 3=>array("name"=>'エミリー',"gender"=>'女',"graduate"=>'アメリカ'), 6 4=>array("name"=>'山田',"gender"=>'男',"graduate"=>'日本'), 7 5=>array("name"=>'トム',"gender"=>'男',"graduate"=>'アメリカ'), 8); 9$result = array_filter( $data, function ( $value ) use ( $graduate ) { return ( $value[ 'graduate' ] === $graduate ); } ); 10var_dump( $result );

【$_GET, $_POSTなどを受け取る際の処理 - Qiita】
http://qiita.com/mpyw/items/2f9955db1c02eeef43ea#フィルタ関数の活用

投稿2017/04/20 19:43

編集2017/04/20 20:00
kei344

総合スコア69400

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

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

0

ベストアンサー

https://teratail.com/questions/73006
この質問に回答した者です。
回答に書いたコード中、ループ内のif文の条件を以下に変えるのみで対応可能です。

PHP

1if($element=='未選択' || $v['graduate'] == $element){

投稿2017/04/21 00:00

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問