人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPプログラミング

$a=20;
$b=10;
$c=30;

$a,$b,$cのうちどれが一番最小かを求めたいとき
if($a<$b){
if($a<$c){
echo("Aが最小");
}else{
if($c<$b){
echo("$cが最小");
}else{
echo("$bが最小");
}
}
}else{
(省略)

}

のような方法しか思いつかないのですがもっと簡単に(関数1行とかで)求めることはできるでしょうか

●質問者: dedara
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:echo PHP プログラミング 関数
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● pirokyun
●10ポイント

$array = array(10, 30, 20);

sort($array);

echo $array[0];

?>

すぐ思いついたのはこんな感じです。

◎質問者からの返答

回答ありがとうございます。

説明がわかりづらかったかもしれませんが

変数$a、$b、$cをくらべて最小の値が入ってる変数は3つのうちどれか、

というのを知りたいのです。

単純に3つの値(10、20、30)の最小値を知りたいのではありません


2 ● ftns
●20ポイント

最小値を求めるなら、min()が使えます。

http://jp2.php.net/manual/ja/function.min.php

しかし「最小の値を持っている変数はどれか?」を知りたい場合は、お考えの通りに比較するしかありません。

◎質問者からの返答

まさに「最小の値を持っている変数はどれか?」を知りたいのですが

やっぱり方法はないのでしょうか。

3つの変数をくらべるならまだいいのですが

これが4つ5つとなってくるとひどい分岐になってきます


3 ● pirokyun
●30ポイント
<?php

$a=20;
$b=10;
$c=30;

$array = compact("a", "b", "c");

asort($array);

$res = array_search(current($array), $array);

echo '$' . $res .'が最小';

?>

min()忘れてた!!

う?ん。ごりごりの力押しですが・・・いかがでしょう・・・。

もっといい方法あるかもしれませんが思いつきませーんorz

◎質問者からの返答

pirokyunさんの最初の回答を見たとき連想配列にする方法がなんとなく頭に浮かんだのですが、これはそんな感じです。

compact関数は知りませんでした。


4 ● kn1967
●10ポイント

案1:最小値を求めて、最小値に相当するキーを取得する方法

$a=20;
$b=10;
$c=30;

$array = array("a" => $a, "b" => $b, "c" => $c); // 連想配列化
$min = min($array); // 最小値を求める
echo array_search($min,$array); // 求めた最小値に該当する要素を求めてキーを出力

案2:並び替えを行って最初のキーを取得する方法

$a=20;
$b=10;
$c=30;

$array = array("a" => $a, "b" => $b, "c" => $c); // 連想配列化
asort($array); // 昇順で並び替え
echo key($array); // 最初の要素のキーを出力

以上のような感じで連想配列を用いてはいかがでしょう?

◎質問者からの返答

回答ありがとうございます。pyonkunさんの回答に近いですね。

やっぱり連想配列ですかね


5 ● KeyKey
●30ポイント

三項演算子を使って無理やり1行に

echo (($a < $b) ? ($a < $c) : false) ? 'a' : (($b < $c) ? 'b' : 'c');

ちなみにperlや他の言語で実装するなら

print (($a < $b) ? ($a < $c) : false) ? 'a' : ($b < $c) ? 'b' : 'c';

こんな感じになる

◎質問者からの返答

こんな方法もあるのかあ

三項演算子使ったことがありませんでしたがいいですね

回答ありがとうございます


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ