如何在PHP中将关联数组的先前键与当前键进行比较?

时间:2019-03-27 15:54:08

标签: php foreach compare key

我想从数组中回显最常见的数字。我有一个数组,我想将上一个键与数组的当前键进行比较。我该怎么办?

我做了两个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;
       }
}

这就是我不想这样做的方式。

2 个答案:

答案 0 :(得分:0)

您可以将上一个密钥保存在循环之外。

示例:

$previousKey = null;
foreach ($array as $key => $value) {
    if ($key > $previousKey){ //If current key is greater than last key

    }
    $previousKey = $key;
}

$ highestKey将设置为该数组中的最大键。

答案 1 :(得分:0)

最常见的数字可以使用array_count_values找到。
array_count_values的输出是一个关联数组,其中key是值,而value是它在数组中的次数。
用sort对数组进行排序以保留键。
翻转数组以获取最常见的值,并回显最后一项。

$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