📜  如何使用PHP查找数组中元素的索引?(1)

📅  最后修改于: 2023-12-03 15:38:07.365000             🧑  作者: Mango

如何使用PHP查找数组中元素的索引?

在 PHP 中,查找数组中元素的索引是一项常见的任务。可以使用内置函数 array_search()array_keys() 来实现这一目标。

使用 array_search()

array_search() 函数返回数组中特定值的键名,如果没有找到该值,返回 false

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2
$key = array_search('yellow', $array); // $key = false

如果想要获取多个匹配项的键名,可以将 array_search() 放在循环中。

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$matches = array();
foreach ($array as $key => $value) {
    if ($value === 'red') {
        $matches[] = $key;
    }
}
print_r($matches); // 输出 Array ( [0] => 1 [1] => 3 )
使用 array_keys()

array_keys() 函数返回数组的键名,可以通过设置第二个参数来指定要查找的值。

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$keys = array_keys($array, 'red'); // $keys = Array ( [0] => 1 [1] => 3 )

如果没有设置第二个参数,则 array_keys() 返回整个数组的键名。

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$keys = array_keys($array); // $keys = Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )

如果想要查找多个值的键名,可以将 array_keys() 放在循环中。

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$matches = array();
foreach (array('red', 'green') as $value) {
    $matches = array_merge($matches, array_keys($array, $value));
}
print_r($matches); // 输出 Array ( [0] => 1 [1] => 3 [2] => 2 )

以上是使用 PHP 查找数组中元素的索引的两种方法,希望对你有所帮助!