2

我有一个数组,我想获得一个特定值的位置

例子:

$my_array = array(0,2,5,3,7,4,5,2,1,6,9);

我的搜索是5,数组中5 号的位置是( 26

如果我调用该array_search函数,则始终返回数组中的第一个位置2

反正有没有获得两个或更多特定价值的职位?

4

4 回答 4

11

array_keys与可选的搜索参数一起使用,它应该返回所有的键。

$matches = array_keys($my_array, 5);

于 2012-08-28T12:25:25.837 回答
2

看看array_keys第二个参数。您可以获得仅匹配的密钥$search_value

于 2012-08-28T12:25:36.800 回答
1
  $result = array();
  foreach ($array as $key => $value)
   {
      $result[$value] =implode(',',array_keys($array,$value))

  }
  echo '<pre>';
print_r($result);

它会给你一个数组,其中值作为键,它们的出现作为用逗号分隔的值

于 2012-08-28T12:34:23.300 回答
1

只需遍历数组:

/* Searches $haystack for $needle.
   Returns an array of keys for $needle if found,
   otherwise an empty array */
function array_multi_search($needle, $haystack) {
  $result = array();
  foreach ($haystack as $key => $value)
    if ($value === $needle)
      $result[] = $key;
  return $result;
}
于 2012-08-28T12:24:09.533 回答