我想从数组中回显最常见的数字。我有一个数组,我想将以前的键与数组的当前键进行比较。我该怎么做?
我做了两个 foreach 循环:
$mostCommon = 0;
foreach ($_SESSION['array'] as $key => $value) {
foreach ($_SESSION['array'] as $key2 => $value2){
$key++;
}
if(current key is higher than previous key){
$mostCommon = $value;
}
}
这就是我不想这样做的方式。
您可以将上一个密钥保存在循环之外。
例:
$previousKey = null;
foreach ($array as $key => $value) {
if ($key > $previousKey){ //If current key is greater than last key
}
$previousKey = $key;
}
$highestKey将设置为该数组中最大的键。
最常见的数字可以使用array_count_values找到。
array_count_values 的输出是一个关联数组,键是值,值是它在数组中的次数。
使用 asort 对数组进行排序以保留键。
翻转数组以获取最常见的值,并回显最后一项。
$arr = [1,2,2,3,3,3,3,1,2,5,3,7];
$counts = array_count_values($arr);
asort($counts);
$flipped = array_flip($counts);
echo "most common number: " . end($flipped) . " is in the array " . end($counts) . " times";
//most common number: 3 is in the array 5 times
https://3v4l.org/qSD4J