嗨, 所以我有两个数组位置最大值的
$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
行为的结果。