有一个像$arr = array(1,2,3,3,3,4,5). 如果我们想获得所有值为 3 的索引怎么办?我用过array_search(3, $arr),但它只返回一个整数和第一个值为“3”的索引我们怎样才能得到一个$indexes = array(2,3,4)显示所有值为 3 的索引的数组?非常感谢您的帮助
3 回答

扬帆大鱼
TA贡献1799条经验 获得超9个赞
你可以使用 array_keys:
foreach (array_keys($arr) as $key) if ($arr[$key] == 3) $result[] = $key;

肥皂起泡泡
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 }
- 3 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消