📜  php 在数组中查找 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:23.042000             🧑  作者: Mango

PHP 在数组中查找

在 PHP 中,有许多内置函数可以在数组中查找元素。这些函数可以帮助程序员更有效地管理和操作数组。

in_array 函数

in_array 函数的作用是在数组中查找指定的元素,如果找到了则返回 true,否则返回 false。

if (in_array("apple", $fruits)) { // $fruits 是一个包含若干个水果名称的数组
    echo "找到了苹果!";
} else {
    echo "没有找到苹果。";
}

注意,in_array 函数默认是使用“松散比较”(loose comparison)的方式查找元素。也就是说,如果数组中的元素和指定的元素具有相同的“值”,但数据类型不同,也会被认为是找到了这个元素。

如果需要强制使用“严格比较”(strict comparison)的方式查找元素,可以在函数调用时将第三个参数设置为 true。

array_search 函数

array_search 函数的作用是在数组中查找指定的值,如果找到了则返回该元素所在的“键”,否则返回 false。

$fruit = 'apple';
$key = array_search($fruit, $fruits);

if ($key !== false) {
    echo "找到了 $fruit,它位于数组的第 $key 个位置。";
} else {
    echo "没有找到 $fruit。";
}

需要注意的是,array_search 函数只能找到第一个匹配的元素所在的键,而不能找到所有匹配项的键。如果需要查找所有匹配项,可以使用 array_keys 函数结合 in_array 函数实现。

array_keys 函数

array_keys 函数的作用是返回数组中所有键名组成的新数组。

$fruits = array('apple', 'banana', 'cherry', 'apple', 'durian');
$keys = array_keys($fruits);

print_r($keys);

上面的代码将输出如下结果:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
)

如果需要在返回的数组中只包含某个元素的所有键,可以传递第二个参数作为搜索值。

$fruits = array('apple', 'banana', 'cherry', 'apple', 'durian');
$keys = array_keys($fruits, 'apple');

print_r($keys);

上面的代码将输出如下结果:

Array
(
    [0] => 0
    [1] => 3
)
array_values 函数

array_values 函数的作用是返回数组中所有值组成的新数组。

$fruits = array('apple', 'banana', 'cherry', 'apple', 'durian');
$values = array_values($fruits);

print_r($values);

上面的代码将输出如下结果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [3] => apple
    [4] => durian
)

如果需要在返回的数组中只包含某个键对应的值,可以使用 isset 函数进行判断。

$fruits = array('apple', 'banana', 'cherry', 'apple', 'durian');
if (isset($fruits[3])) {
    $value = $fruits[3];
    echo $value;
} else {
    echo "没有找到元素。";
}

上面的代码将输出如下结果:

apple
Conclusion

通过使用这些内置函数,我们可以更加有效地在 PHP 数组中查找元素,从而更好地实现程序的功能需求。