当有多种可能性时,查找数组中对象的索引

时间:2013-01-10 00:06:33

标签: php

我有一个数组,我想找到数组中某个对象的所有索引。当我使用array_search时,它只返回可以找到对象的第一个索引。

echo array_search(3, array(3, 3, 4));

返回0,但我想知道索引0和1都以整数3作为对象。有没有办法在不使用for循环的情况下执行此操作?

2 个答案:

答案 0 :(得分:3)

尝试使用array_keys()方法:

  $array = array(3, 3, 4);
  print_r(array_keys($array, "3"));

供参考:

array_keys() - 返回数组Info&的所有键或键的子集。用法示例:http://php.net/manual/en/function.array-keys.php

答案 1 :(得分:1)

作为array_keys的替代方法,array_filter()保留了关联性

$key = 3;
$array = array(1, 3, 3, 4, 3, 5);

$result = array_filter(
    $array,
    function ($item) use ($key) {
        return ($item == $key);
    }
);

var_dump($result);