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

Hoi*_*tar 1 php arrays

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

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

我希望输出

$a = array(3,5,5,8,6,7,6);
Run Code Online (Sandbox Code Playgroud)

[3,0], [5,2], [8,3], [6,6], [7,5]
Run Code Online (Sandbox Code Playgroud)

但实际输出是

[3,0], [5,1], [8,3], [6,4], [7,5]
Run Code Online (Sandbox Code Playgroud)

Nig*_*Ren 6

只是一个快速的选择,如果使用array_flip()交换值和密钥,则它将自动覆盖以前的任何密钥值,因此当您翻转时[1=>5, 2=>5],第二个将覆盖第一个。

所以

$a = array(3,5,5,8,6,7,6);
print_r(array_flip($a));
Run Code Online (Sandbox Code Playgroud)

给...

Array
(
    [3] => 0
    [5] => 2
    [8] => 3
    [6] => 6
    [7] => 5
)
Run Code Online (Sandbox Code Playgroud)