2016-05-18 2 views
4

OK. Поэтому у меня есть куча переменных, содержащих число от 1 до 4. Как:Как узнать, какая переменная возвращает наименьшие значения в PHP min()

$score1 = 1; 
$score2 = 3; 
$score3 = 2; 
$score4 = 1; 
$score5 = 4; 
$score6 = 2; 

А потом я использую

min($score1, $score2, $score3, $score, $score5, $score6); 

и результатом является то, что 1 самый низкий балл.

Есть ли способ узнать, какие переменные вернули самый низкий балл?

В этом конкретном примере это скажет мне, что $ score1 и $ score4 возвращают целое число, равное наименьшему целому числу.

Любые предложения, которые были высоко оценены.

+1

Вы должны использовать массив вместо нумерованных переменных –

+0

Вы правы. Я должен. Soooo намного проще. Должен был подумать об этом с самого начала (сейчас у меня 22 балла)! –

ответ

5

грима массиву и найти ключи со значениями, равными минимальным значением

$a = array($score1, $score2, $score3, $score4, $score5, $score6); 
print_r(array_keys($a, min($a))); // [0,3] 
+0

Спасибо! Это отличная помощь. –

+0

Рад помочь. Удачи! – splash58

1

В первую очередь я бы рекомендовал использовать массив, а не просто много переменных. А в массиве мы имеем нечто вроде массива [0], array [1] и т. Д.

И затем, как только у вас есть все баллы в массиве вы можете использовать встроенный в методах, как получить индекс массива или отсортировать значение массива или получить значение мин и т.д.

Лучшим способом узнать наименьшая оценка была бы первой сортировкой по возрастанию и вытягиванию первого значения индекса массива. Но есть много подходов к получению значения min и его местоположения в массиве.

Надеется, что это помогает

1

Если вы по каким-то причинам, не хотите (или не можете) использовать массив:

$min=min($score1, $score2, $score3, $score4, $score5, $score6); 

for($i=1;$i<7;$i++) { 

    if(${"score".$i}==$min) { 
     echo '$score'.$i; 

    } 

} 
+0

Спасибо. Вероятно, я просто хочу noob считать массив при написании кода. Это был просто стартовый проект, который внезапно превратился в более крупный проект. Но спасибо за это решение. –