在PHP foreach
循環中,我有一個名爲$levels
的變量。該變量爲每個循環提供不同的值。這些值都是數字。這些數字在循環的多個實例中也是常見的。PHP在循環中統計不同的數值返回值
因此,例如,一些循環可能會返回數字7,其他循環可能會返回4,而一個可能會返回3.我希望能夠確定在循環過程中生成的最常見數值。
有關如何實現這一目標的任何建議?
在PHP foreach
循環中,我有一個名爲$levels
的變量。該變量爲每個循環提供不同的值。這些值都是數字。這些數字在循環的多個實例中也是常見的。PHP在循環中統計不同的數值返回值
因此,例如,一些循環可能會返回數字7,其他循環可能會返回4,而一個可能會返回3.我希望能夠確定在循環過程中生成的最常見數值。
有關如何實現這一目標的任何建議?
Store中的循環值到一個數組。
$stuff = array('orange','banana', 'apples','orange', 'xxxxxxx');
$result = array_count_values($stuff);
asort($result);
end($result);
$answer = key($result);
echo $answer;
我希望這會給你!
這與Ashwini Agarwal的代碼一樣有效。唯一的問題是如果一個返回值只存在一次,那麼它似乎不會返回最高的數字。如果他們都一樣,我想要返回的最高號碼。 – John
在循環過程中,您可以創建一個數組(例如$ loopArray),並用所有生成的值填充它。在循環結束時,您可以計算陣列的模式(示例取自this answer)。
$values = array_count_values($loopArray);
$mode = array_search(max($loopArray), $loopArray);
在數據集中重複最多的值被稱爲[模式](http://en.wikipedia.org/wiki/Mode_(statistics)),我發佈了代碼以查找它! – Albz
你可以做這樣的事情......
$return = array();
foreach($array as $key => $value) {
...
$return[] = $levels;
}
$count = array_count_values($return);
arsort($count);
$keys = array_keys($count);
echo "The most occurring value is $keys[0][1] with $keys[0][0] occurrences."
你可以嘗試這樣的事情
$a = array(1,2,3,4,5,5,6,7,8,8,8,8,9,5,5);
$test = array();
foreach ($a as $value) {
//echo $value."<br>";
$test[$value][] = $value;
}
echo "--------------------------<br>";
echo count($test[8]);
出手,這就是正確的循環返回一個數字。大部分時間這些數字都是獨一無二的,但有時它們是相同的。我想返回最多返回的那個。如果他們全部返回相同的時間量,則返回最高的數字。 – John
請添加您現在使用的代碼,這將更容易幫助您 – luttkens
在SO –