0

私の質問はおそらく繰り返しですが、本当に難しいと思います。(関連トピックを読みました)

これは配列です:

Array
(
    [0] => Array
        (
            [legend] => 38440
        )

    [1] => Array
        (
            [bestw] => 9765
        )

    [2] => Array
        (
            [fiuna] => 38779
        )

    [3] => Array
        (
            [adam] => 39011
        )

    [4] => Array
        (
            [adam] => 39011
        )

    [5] => Array
        (
            [adam] => 39011
        )

)

この配列を処理し、最も一般的な値を見つけるために多くの方法を試しました。私が期待する結果は「アダム」です

$countwin = array_count_values($winnernames);
$maxwin = max($countwin);
$mostwinner = array_keys($countswin, $maxwin);

編集:私の配列はこのようなものarray("A"=>"1" , "B"=>"2" , "A"=>"1") で、Aが最も一般的です

4

2 に答える 2

2

配列を反復して、取得した値をカウントするのはどうですか?

$occurences = array();
foreach ($data as $row) {
  foreach ($row as $key => $score) {
    if (empty($occurences[$key])) {
      $occurences[$key] = 1;
    } else {
      $occurences[$key]++;
    }
  }
}

そしてそれを並べ替えます

arsort($occurences);

ソートされた配列の最初の要素を取得する

$t = array_keys($occurences);
$winner = array_shift($occurences);
于 2012-06-30T16:26:10.387 に答える
-1

このコードを試すことができます。まさに強引な方法。しかし、簡単に検索すると、これが便利なものであることがわかりました。

function findDuplicates($data,$dupval) {
$nb= 0;
foreach($data as $key => $val)
if ($val==$dupval) $nb++;
return $nb;
}

編集:申し訳ありませんが、私はあなたの質問を誤解しました! しかし、それは最大のカウンターを持つものを見つけるための最初のヒントかもしれません.

于 2012-06-30T16:19:17.083 に答える