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

Array_Search 多个相同的元素

Array_Search 多个相同的元素

PHP
弑天下 2022-12-23 13:08:42
有一个像$arr = array(1,2,3,3,3,4,5). 如果我们想获得所有值为 3 的索引怎么办?我用过array_search(3, $arr),但它只返回一个整数和第一个值为“3”的索引我们怎样才能得到一个$indexes = array(2,3,4)显示所有值为 3 的索引的数组?非常感谢您的帮助
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以使用array_keys带有搜索值的PHP Doc

演示

array_keys($arr,3)

array_keys()从数组中返回键、数字和字符串。

如果指定了 search_value,则只返回该值的键。否则,返回数组中的所有键。


查看完整回答
反对 回复 2022-12-23
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

你可以使用 array_keys:

foreach (array_keys($arr) as $key) if ($arr[$key] == 3) $result[] = $key;


查看完整回答
反对 回复 2022-12-23
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

使用该解决方案,您可以创建复杂的过滤器。在这种情况下,我们将每个值都与数字三进行比较(=== 运算符)。过滤器返回索引,当比较为真时,它将被丢弃。


$a = [1,2,3,4,3,3,5,6];


$threes = array_filter($a, function($v, $k) {

  return $v === 3 ? $k : false; },

  ARRAY_FILTER_USE_BOTH

);

$threes是一个包含所有值为 3 的键的数组。


阵列(3){ 2, 4, 5 }


查看完整回答
反对 回复 2022-12-23
  • 3 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号