猿问

Array_Search 多个相同的元素

有一个像$arr = array(1,2,3,3,3,4,5). 如果我们想获得所有值为 3 的索引怎么办?

我用过array_search(3, $arr),但它只返回一个整数和第一个值为“3”的索引

我们怎样才能得到一个$indexes = array(2,3,4)显示所有值为 3 的索引的数组?

非常感谢您的帮助


弑天下
浏览 171回答 3
3回答

繁星点点滴滴

您可以使用array_keys带有搜索值的PHP Doc演示array_keys($arr,3)array_keys()从数组中返回键、数字和字符串。如果指定了 search_value,则只返回该值的键。否则,返回数组中的所有键。

扬帆大鱼

你可以使用 array_keys:foreach (array_keys($arr) as $key) if ($arr[$key] == 3) $result[] = $key;

肥皂起泡泡

使用该解决方案,您可以创建复杂的过滤器。在这种情况下,我们将每个值都与数字三进行比较(=== 运算符)。过滤器返回索引,当比较为真时,它将被丢弃。$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 }
随时随地看视频慕课网APP
我要回答