如何使用php从具有相同值的数组中获取最右边的索引值

我正在制作一个使用风选算法获取指纹值的程序。这是我必须从数组中取最小值的地方。但不仅是最小的,在某些情况下,如果您找到相同的值,则最右边的值将与索引值一起使用。示例数组 (3,5,5,8,6,7)。从这个例子中,我想取第二个数字 5 的索引,它是索引 2,而不是索引 1。


但是当我尝试获得与最右边位置相同的值时,请使用 php 中的函数 min(),但我得到的始终是最左边的位置。


我希望输出


$a = array(3,5,5,8,6,7,6);


[3,0], [5,2], [8,3], [6,6], [7,5]

但实际输出是


[3,0], [5,1], [8,3], [6,4], [7,5]


白板的微信
浏览 164回答 3
3回答

蓝山帝景

只是一个快速的替代方案,如果您使用array_flip()which 交换值和键,那么这将自动覆盖任何以前的键值,因此当您翻转时[1=>5, 2=>5],第二个将覆盖第一个。所以$a = array(3,5,5,8,6,7,6);print_r(array_flip($a));给...Array(    [3] => 0    [5] => 2    [8] => 3    [6] => 6    [7] => 5)

哔哔one

使用数组中的值作为索引,筛选出最合适的值$values = array(3,5,5,8,6,7,6);$result = [];foreach ($values as $index => $value) {  $result[$value] = [$value, $index];}print_r(array_values($result));

炎炎设计

使用 array_unique 解决这个问题$a = array(3,5,5,8,6,7,6);$unique = array_unique($a);print_r($unique);答案应该是Array(    [0] => 3    [1] => 5    [3] => 8    [4] => 6    [5] => 7)
打开App,查看更多内容
随时随地看视频慕课网APP