为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白板的微信 2021-10-22 14:43:01
我正在制作一个使用风选算法获取指纹值的程序。这是我必须从数组中取最小值的地方。但不仅是最小的,在某些情况下,如果您找到相同的值,则最右边的值将与索引值一起使用。示例数组 (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]
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

只是一个快速的替代方案,如果您使用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

)


查看完整回答
反对 回复 2021-10-22
?
哔哔one

TA贡献1854条经验 获得超8个赞

使用数组中的值作为索引,筛选出最合适的值


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


$result = [];

foreach ($values as $index => $value) {

  $result[$value] = [$value, $index];

}

print_r(array_values($result));


查看完整回答
反对 回复 2021-10-22
?
炎炎设计

TA贡献1808条经验 获得超4个赞

使用 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

)


查看完整回答
反对 回复 2021-10-22
  • 3 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信