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

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

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

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

Q&A

解決済

1回答

236閲覧

より早く任意の値が含まれるカラムだけを表示させるには...

lenlen

総合スコア44

PHP

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

0グッド

0クリップ

投稿2017/08/31 13:44

編集2017/08/31 14:03

(構造を分かりやすく伝えるため形式はjsonになっています,,,実際はPHPの配列形式に変換します。)

下記のような連想配列があり、PHPのforeachで「任意の値が含まれるカラムだけ抜き出して表示」という事を試しています。

php

1//arrayの中身の構造 2{ 3 "no": 1, 4 "number": { 5 "id": 1, 6 "content": { 7 "title": "タイトル", 8 "url": "URL", 9 "slag": "〇〇", 10 }, 11 }, 12 "no": 2, 13 "number": { 14 "id": 2, 15 "content": { 16 "title": "タイトル", 17 "url": "URL", 18 "slag": "〇〇", 19 }, 20 }, 21 "no": 3, 22 "number": { 23 "id": 3, 24 "content": { 25 "title": "タイトル", 26 "url": "URL", 27 "slag": "〇〇", 28 }, 29 }, 30}

私の現在のコードはこんな感じです。
大変お粗末かと思いますが、foreachで回し、if条件で強引に抜き出しています。

下記の例では「number」の中に「id:1」があるカラムの内容のみ表示するという記述になります。

php

1<?php foreach( $array as $key=>$val ): ?> 2 3 <?php if($val["number"]["id"] == '1'): ?> 4 5 <tr> 6 <td><?php echo $val["number"]["content"]["title"];?></td> 7 <td><?php echo $val["number"]["content"]["url"];?></td> 8 <td><?php echo $val["number"]["content"]["slug"];?></td> 9 </tr> 10 11 <?php endif; ?> 12 13<?php endforeach; ?>

PHPのマニュアルなど検索してみたのですが、それっぽいものがなく、、こういった処理を直で行える関数などあったりするのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

提示されたデータが内部で競合していますね
同じキー"number"でデータを羅列すると上書きされます

sample

修正後のデータもちょっとおかしそうなので、想像も含めて以下sampleです

PHP

1$a=[ 2 [ 3 "number"=> [ 4 "id"=> 1, 5 "content"=> [ 6 "title"=> "タイトル", 7 "url"=> "URL", 8 "slag"=> "〇〇", 9 ], 10 ], 11 ], 12 [ 13 "number"=> [ 14 "id"=> 2, 15 "content"=> [ 16 "title"=> "タイトル", 17 "url"=> "URL", 18 "slag"=> "〇〇", 19 ], 20 ], 21 ], 22 [ 23 "number"=> [ 24 "id"=> 3, 25 "content"=> [ 26 "title"=> "タイトル", 27 "url"=> "URL", 28 "slag"=> "〇〇", 29 ], 30 ], 31 ], 32 ]; 33 34$b=array_filter($a,function($x){ 35 return ($x["number"]["id"]==1); 36}); 37 38print_r($b);

投稿2017/08/31 13:55

編集2017/08/31 14:09
yambejp

総合スコア114829

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

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

lenlen

2017/08/31 13:59

大変失礼いたしました。。 質問用に作ったソースが間違っておりました。修正いたします。
yambejp

2017/08/31 14:10

sample上げておきました
lenlen

2017/08/31 14:21

ソースの修正もいただいて更に明解なコードも有難うございました。。 理想通りの動きです!こんな使い方ができるんですね。勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問