在 PHP 中获取数组中某个值的索引

2022-08-30 07:22:47

我有一个数组:

$list = array('string1', 'string2', 'string3');

我想获取给定值的索引(即 for 和 for1string22string3)

我想要的只是字符串在数组中的位置

  • 字符串 1 为 0
  • 字符串 2 为 1
  • 字符串 3 为 2

如何做到这一点?


答案 1

array_search是做到这一点的方法。

array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : mixed

文档中

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;

您可以手动遍历数组并找到索引,但是当有函数可用时,为什么要这样做。此函数始终返回一个键,它将与关联数组和普通数组很好地配合使用。


答案 2

如果您只执行其中的几个(和/或数组大小很大),那么您在正确的轨道上array_search:

$list = array('string1', 'string2', 'string3');
$k = array_search('string2', $list); //$k = 1;

如果你想要全部(或很多),循环会更好地帮助你:

foreach ($list as $key => $value) {
    echo $value . " in " . $key . ", ";
}
// Prints "string1 in 0, string2 in 1, string3 in 2, "