在多维数组的一个维度中查找重复值

时间:2014-04-27 03:55:50

标签: php arrays multidimensional-array duplicates

我一直在搜索档案一整天的大部分时间,并且无法找到我的问题的答案。我希望有人能指出我正确的方向。

问题

如果没有能够识别并列的球队(重复胜率)和破坏这些联系的逻辑(在这个问题的范围之外),我无法测试头对头的结果并最终对球队进行正确排名。

问题

我如何:

  1. 确定哪些球队的胜率相同(某些球队的比赛总数可能会有所不同)
  2. 计算被捆绑的球队数量。
  3. 示例多维阵列

    我有一个多维数组,用于存储包含团队编号,胜利,损失,积分差和胜率的数组。

    示例:

    $team_array = array(
    array(68, 6, 0, 10, 1.000),
    array(65, 6, 0, 8, 1.000),
    array(62, 6, 0, 4, 1.000),
    array(54, 3, 3, 3, .500),
    array(55, 3, 3, -5, .500),
    array(59, 0, 6, -16, .000)
    );
    

    我需要帮助在多维数组的一维中找到重复值(赢率百分比或$ team_array [$ x] [4]。我不知道尝试查找重复值或消除唯一值是否更好

    如果有人有任何想法或建议,我会非常感激。

    提前致谢!!!!

1 个答案:

答案 0 :(得分:0)

编辑以前的代码无效。

// $seenDuplicate[ Percentage ][] = indexes which have this percentage.
foreach(team_array as $ind => $team){
    $trackPercentages[$team[4]][] = $ind;
}
// then you can count the number of each array in $trackPercentages

回复第一条评论: 它返回3因为它包含所有百分比而不管重复。第一个是1.000,第二个是.5000,第三个是.0000

foreach($trackPercentages as $perc => $list){
        $echo "Teams with " . $perc . "% wins.<br>";
        foreach($list as $team){
            echo $team."<br>";
        }
        echo "<br>";
}

如果你只想显示重复项,那么在第一个foreach循环之后,检查:

if(count($list)>1)

我相信ksort可以用来根据索引对数组进行排序。