$names = array('jimmy', 'johnny', 'sarah');
$ages= array('16', '18', '12');
我试图在年龄中找到最大值/最大值,获取元素位置并使用所述位置获取相应的名称。我怎么做到这一点?
有没有更好的方法来实现相应的名称,也许捆绑在一起?
由于
答案 0 :(得分:3)
这应该是你的关键:
$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 />';
}
答案 1 :(得分:1)
只是为了好玩,这是另一个解决方案:
$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
。
答案 2 :(得分:0)
$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)";