📅  最后修改于: 2023-12-03 15:10:22.208000             🧑  作者: Mango
在 PHP 中,数组有时会包含一个或多个“领导者”元素,即数组中出现次数超过数组长度一半的元素。这个程序就是用来寻找数组中的领导者。
首先,我们需要定义一个数组:
$numbers = array(2, 3, 2, 2, 4, 2, 5, 2, 6);
然后,我们需要编写一个函数,此函数实现了以下步骤:
下面是完整的 PHP 程序代码:
function findLeader($numbers) {
$count = array();
$n = count($numbers);
for ($i = 0; $i < $n; $i++) {
if (isset($count[$numbers[$i]])) {
$count[$numbers[$i]]++;
} else {
$count[$numbers[$i]] = 1;
}
}
$max_count = 0;
$leader = -1;
foreach ($count as $number => $count) {
if ($count > $max_count) {
$max_count = $count;
$leader = $number;
}
}
if ($max_count > ($n / 2)) {
return $leader;
}
return -1;
}
$numbers = array(2, 3, 2, 2, 4, 2, 5, 2, 6);
$leader = findLeader($numbers);
echo "The leader in the array is: " . (($leader != -1) ? $leader : "None");
这个程序首先定义了一个数组$numbers,然后调用函数findLeader来找到领导者。函数首先定义了一个关联数组$count,用于统计每个元素出现的次数,然后使用一个循环来遍历整个数组$numbers,更新$count数组。接下来,函数使用一个foreach循环来找出$count数组中出现次数最大的元素,并将其记录为领导者。最后,函数判断领导者的出现次数是否超过了数组长度的一半,如果是,则返回领导者的值,否则返回-1。
在本例中,$leader变量接收了函数findLeader返回的值。如果该值不是-1,则打印领导者的值,否则打印“None”,表示数组中不存在领导者。
本示例程序演示了如何在 PHP 中查找数组中的领导者。关键是需要定义一个关联数组来统计每个元素出现的次数,然后再找出出现次数最大的元素。这个过程可以使用foreach循环来完成。