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

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

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

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

Q&A

解決済

2回答

4257閲覧

連想配列から特定要素を取り出す

hajimete

総合スコア41

PHP

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

0グッド

0クリップ

投稿2017/06/25 08:05

###前提・実現したいこと
配列 $team のkeyが「戦士」のvalue要素を出力してください。
エディターエリアに書かれているプログラムは、標準入力の値を/で分割し、手前の要素をkeyとして、
後の要素をvalueとして連想配列$teamに代入するプログラムです。

入力される値
勇者/勇敢な戦士で、魔王を倒す職業
戦士/剣や斧など直接攻撃を得意とする職業
魔法使い/魔法を使える、高い知識、技能を持つ職業

出力値
戦士/剣や斧など直接攻撃を得意とする職業

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

魔法を使える、高い知識、技能を持つ職業

###該当のソースコード

PHP

1<?php 2// 標準入力を3行取得 3for($i=0 ; $i<3 ; $i++){ 4 $input = trim(fgets(STDIN)); 5 // 入力値を/で分割 6 $key_value =explode("/", $input); 7 // 手前の要素をkeyとして、後の要素をvalueとして連想配列に代入 8 $key = $key_value[0]; 9 $value = $key_value[1]; 10 $team[$key] = $value; 11} 12// ここから下に記述 13// $team のkeyが戦士のvalueを出力 14echo $team[$key]; 15 16?>

###試したこと
課題に対してアプローチしたことを記載してください
取得した要素の中には
Array
(
[0] => 魔法使い
[1] => 魔法を使える、高い知識、技能を持つ職業
)
これしか入っておらず【戦士/剣や斧など直接攻撃を得意とする職業】
を出力するにはwhile関数でないとだめなのでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

以下のように行ってみてはいかがでしょうか?

PHP

1<?php 2// 標準入力を3行取得 3for ($i = 0; $i < 3; $i++) { 4 $input = trim(fgets(STDIN)); 5 // 入力値を/で分割 6 $key_value = explode("/", $input); 7 if ($key_value[0] === "戦士") { 8 echo $key_value[1]; 9 } 10} 11?>

投稿2017/06/25 10:58

s8_chu

総合スコア14731

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

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

0

paiza環境ですが、配列化はちゃんと出来てます。

Array ( [勇者] => 勇敢な戦士で、魔王を倒す職業 [戦士] => 剣や斧など直接攻撃を得意とする職業 [魔法使い] => 魔法を使える、高い知識、技能を持つ職業 )

戦士のデータが取得できないのは、$keyが最終行の魔法使いを指しているからでは。
単純にこう書けば良いと思います。

PHP

1echo $team['戦士']; 2

投稿2017/06/26 00:08

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問