2013-05-08 3 views
0

Ive получил массив, выведенный из БДНайти самый высокий максимум() смешанного массива

Array 

    (
     [0] => Array 
      (
       [name] => Fernando Alonso 
       [time1] => 3.25 
       [time2] => 3.25 
       [time3] => 3.5 
      ) 

     [1] => Array 
      (
       [name] => Jenson Button 
       [time1] => 34 
       [time2] => 41 
       [time3] => 41 
      ) 
    ) 

то, что я хочу сделать, это для каждого выхода драйвера их имен и их быстрое время Somthing как

Фернандо Alsonso , time3 - 3,5

Дженсон Баттон, time2, time3 - 41

Я играл вокруг с помощью max() но возникли проблемы при получении его на работу, как это было Хавин g, поскольку первым элементом является строка, а не int/num,

любая идея, как я буду писать эту функцию?

ответ

1

Хорошо здесь вы идете, вы были правы, чтобы попытаться с max()

function get_highest_time($driver) { 
    // First find the highest time 
    $highest_time = max($driver['time1'], $driver['time2'], $driver['time3']); 
    // now find all of the array keys that match that time 
    $times = array_keys($driver, $highest_time); 
    // now turn that array of keys into a string and add the highest time to the end 
    return implode(', ', $times) . ' - ' . $highest_time; 
} 

foreach ($arr as $driver) { // Where $arr is your array of drivers 
    print $driver['name'] . ': ' . get_highest_time($driver) . '<br />'; 
} 

EDIT:

Просто заметил, что вы сказали, что хотите самое быстрое время водителя, который, несомненно, будет наименьшее число? Если это так, обмен max() за min()

+0

Работал очарование, спасибо! – sam

+0

Вы видели мое редактирование? – RMcLeod

+0

да, спасибо, извините, небрежная формулировка на моей стороне – sam