PHP数组搜索返回空键

时间:2014-11-17 16:04:00

标签: php arrays

我正在尝试使用array_search来查找数组中值的键,我有以下简单代码:

$current_user_existing_shopping_bag_string          = '1446784/-/3/-/£797.00(_)902982/-/4/-/£148.80(_) ';
$current_user_existing_shopping_bag_array           = explode('(_)', $current_user_existing_shopping_bag_string);
$key                                                = array_search($current_user_existing_shopping_bag_array, '902982');
echo $key;  

但是我不知道为什么这不会返回数组中值的键,应该如此。我现在几个小时都在尝试各种解决方案但仍然没有运气。

任何人都能给我一个指针,为什么这不会返回数组中值的键?

由于

1 个答案:

答案 0 :(得分:3)

这是因为array_search使用===运算符比较字符串,而不是任何类型的正则表达式或strpos

您搜索902982但字符串为902982/-/4/-/£148.80,因此它们在任何方面都不相同。

对于您想要实现的目标,您可以使用preg_grep

$result = preg_grep('/' . preg_quote($search) . '/', $current_user_existing_shopping_bag_array);

然后,您可以从结果数组中获取所需的键。