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

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

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

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

Q&A

解決済

1回答

632閲覧

Progate PHP道場コースⅠ 最高価格のものを求める について

nanami__

総合スコア5

PHP

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

0グッド

0クリップ

投稿2020/03/25 14:32

前提・実現したいこと

Progate PHP道場コースⅠ 「最高価格のものを求める」について質問です。
max関数を使ってコードを書きたいのですが、出力がどうしてもうまくいきません。

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

$menusの値が、例2の場合のときの出力が間違っています

該当のソースコード

【例2】 $menus = array( array('name' => 'SUSHI', 'price' => 1500), array('name' => 'PIZZA', 'price' => 1000), array('name' => 'STEAK', 'price' => 2000), array('name' => 'JUICE', 'price' => 700) ); $maxPrice = max($menus); echo $maxPrice['name'] .'が最高価格で' .$maxPrice['price'] .'円です'; →SUSHIが最高価格で1500円です と出力されていしまいます。 【例1】 $menus = array( array('name' => 'CURRY', 'price' => 900), array('name' => 'PASTA', 'price' => 1200), array('name' => 'COFFEE', 'price' => 600) ); の方は、 $maxPrice = max($menus); echo $maxPrice['name'] .'が最高価格で' .$maxPrice['price'] .'円です'; 上記のまったく同じコードでちゃんと PASTAが最高価格で1200円です と出力されます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

max関数は、普通の<のような演算子と同じ基準で最大となるものを探します。

そして、配列を比較演算すると、(要素数とキーが同じであれば)先にある要素から比較していきます。そのため、maxの判定基準は金額ではなく名前の方になってしまいます。

投稿2020/03/25 14:45

編集2020/03/25 14:48
maisumakun

総合スコア146018

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

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

nanami__

2020/03/25 14:49

回答ありがとうございます。 すみません、初心者のためもう少し詳しく教えて頂けますでしょうか。 先にある要素から比較となると、この場合は何が最大という結果になるのでしょうか? また、結論、この場合max関数は使えないということでしょうか…?
maisumakun

2020/03/25 14:58

> この場合は何が最大という結果になるのでしょうか? 名前を比較して、辞書順で最後に来るもの(例2ではSUSHI、例3ではPASTA)です。 > 結論、この場合max関数は使えないということでしょうか…? はい、そのままでは使えません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問