嗨, 所以我有兩個數組位置最大值的
$names = array('jimmy', 'johnny', 'sarah');
$ages= array('16', '18', '12');
我試圖找到年齡最大/最大值,獲得該元素的位置和使用上述位置獲得相應的名字。我將如何實現這一目標?
有沒有更好的方法來實現相應的名稱,也許捆綁在一起?
感謝
嗨, 所以我有兩個數組位置最大值的
$names = array('jimmy', 'johnny', 'sarah');
$ages= array('16', '18', '12');
我試圖找到年齡最大/最大值,獲得該元素的位置和使用上述位置獲得相應的名字。我將如何實現這一目標?
有沒有更好的方法來實現相應的名稱,也許捆綁在一起?
感謝
這應該拿到鑰匙給你:
$names = array('jimmy', 'johnny', 'sarah');
$ages= array('16', '18', '12');
$oldest = array_search(max($ages), $ages);
echo $names[$oldest];
你應該注意到雖然,如果兩個人有同樣的年齡,第一這兩個人將是一個返回。
,如果你需要找到所有你應該使用array_keys()
而不是array_search()
這樣最古老的:
$names = array('jimmy', 'johnny', 'sarah', 'kristine');
$ages = array('16', '18', '12', '18');
$oldestPersons = array_keys($ages, max($ages));
foreach($oldestPersons as $key) {
echo $names[$key].'<br />';
}
$oldest_key = 0;
$age_var = 0;
foreach ($ages as $key => $age) {
if ($age > $age_var) {
$age_var = $age;
$oldest_key = $key;
}
}
echo "Oldest person is: {$names[$oldest_key]} ($age_var)";
只是爲了好玩,這裏是另一種解決方案:
$names = array('jimmy', 'johnny', 'sarah');
$ages= array('16', '18', '12');
$people = array_combine($ages, $names);
ksort($people);
echo 'Oldest person is: '.end($people);
注意:如果很多人的年齡相同,則最後出現在輸入數組中的人會被挑選出來。這是array_combine
行爲的結果。