我正在使用 array_search
查找特定值的键。
示例 1 成功地在数组中搜索单词 green,但示例 2 试图找到 green,其中 Light Green 是数组中的一个值,但它不起作用。
谁能推荐一种方法来做到这一点?
//Example 1
$array = array(0 => 'Green', 1 => 'Blue', 2 => 'Black', 3 => 'Yellow');
$key = array_search(strtolower('green'), array_map('strtolower', $array));
//displays 0
echo $key;
//Example 2
$array = array(0 => 'Light Green', 1 => 'Blue', 2 => 'Black', 3 => 'Yellow');
$key = array_search(strtolower('green'), array_map('strtolower', $array));
//should display 0 but displays nothing.
echo $key;
最佳答案
使用array_filter()
:
$array = array(0 => 'Light Green', 1 => 'Blue', 2 => 'Black', 3 => 'Yellow');
$search= 'green';
$key = key(array_filter($array, function($x) use ($search)
{
return false!==stripos($x, $search);
}));
-注意,上面的代码不会检查传递的搜索字符串是“word”。 IE。 将 3
ellow
关于php - 如何搜索指针与值不完全匹配的 PHP 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934525/