in_array()用于判断值是否存在并返回布尔值,array_search()则返回匹配值的键名,选择取决于是否需要获取位置信息。

在PHP中查找数组中的值,最常用且高效的两个内置函数是
in_array()
array_search()
in_array()
array_search()
false
PHP提供了两个核心函数来满足你在数组中查找值的需求。理解它们各自的特点和适用场景,能帮助你写出更健壮、更高效的代码。
1. in_array()
这个函数直观地回答了“数组里有没有这个东西?”的问题。
立即学习“PHP免费学习笔记(深入)”;
in_array(mixed $needle, array $haystack, bool $strict = false): bool
$needle
$haystack
$strict
true
in_array()
===
false
==
$needle
true
false
示例:
<?php
$fruits = ['apple', 'banana', 'orange', 'grape'];
// 查找 'banana'
if (in_array('banana', $fruits)) {
echo "数组中包含香蕉。\n"; // 输出:数组中包含香蕉。
} else {
echo "数组中不包含香蕉。\n";
}
// 查找 'kiwi'
if (in_array('kiwi', $fruits)) {
echo "数组中包含猕猴桃。\n";
} else {
echo "数组中不包含猕猴桃。\n"; // 输出:数组中不包含猕猴桃。
}
// 严格模式下的查找
$numbers = [1, '2', 3, '4'];
if (in_array('1', $numbers, true)) { // '1' (string) !== 1 (int)
echo "严格模式下,找到了字符串 '1'。\n";
} else {
echo "严格模式下,未找到字符串 '1'。\n"; // 输出:严格模式下,未找到字符串 '1'。
}
if (in_array(1, $numbers, true)) { // 1 (int) === 1 (int)
echo "严格模式下,找到了整数 1。\n"; // 输出:严格模式下,找到了整数 1。
}
?>我个人在用
in_array()
strict
strict
true
2. array_search()
当你不仅想知道值是否存在,还想知道它在数组中的具体位置(即键名或索引)时,
array_search()
array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
$needle
$haystack
$strict
in_array()
strict
$needle
false
重要提示:
array_search()
0
0
false
!== false
if ($key)
示例:
<?php
$users = [
'admin_id' => 101,
'editor_id' => 102,
'viewer_id' => 103,
'guest_id' => 104
];
// 查找值为 102 的键名
$key = array_search(102, $users);
if ($key !== false) { // 注意这里使用了 !== false
echo "值为 102 的键名是:{$key}\n"; // 输出:值为 102 的键名是:editor_id
} else {
echo "未找到值为 102 的元素。\n";
}
// 查找一个不存在的值
$notFoundKey = array_search(999, $users);
if ($notFoundKey !== false) {
echo "值为 999 的键名是:{$notFoundKey}\n";
} else {
echo "未找到值为 999 的元素。\n"; // 输出:未找到值为 999 的元素。
}
// 考虑索引为 0 的情况
$list = ['apple', 'banana', 'orange'];
$index = array_search('apple', $list);
if ($index !== false) {
echo "苹果的索引是:{$index}\n"; // 输出:苹果的索引是:0
} else {
echo "未找到苹果。\n";
}
// 错误示范:如果使用 if ($index) 可能会导致问题
if ($index) { // $index 是 0,会被视为 false
echo "错误示范:通过 if ($index) 找到了苹果。\n";
} else {
echo "错误示范:通过 if ($index) 认为没找到苹果。\n"; // 这行会被执行,因为 0 被当成了 false
}
?>说实话,
array_search()
=== false
选择
in_array()
array_search()
选择 in_array()
in_array()
if (in_array('admin_permission', $userPermissions)) { ... }in_array()
以上就是如何在PHP中查找数组中的值?in_array()和array_search()的应用的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号