【发布时间】:2015-11-14 01:08:06
【问题描述】:
数组搜索返回错误。
假设我有一个这样的数组 ---
[1] => Array
(
[id] => 11
[category] => phone cases
[country] => sweden
[sale_price] => 90,99
[price] => 120
[currency] => sek
[vat] => 19
[product_name] => "iphone 6 plus" case transparent
[description] => transparent case for iphone 6 plus
)
[2] => Array
(
[id] => 13
[category] => shoes
[country] => sweden
[sale_price] => 180,99
[price] => 200
[currency] => sek
[vat] => 19
[product_name] => blue platform shoes
现在我试图从这个数组中搜索一些东西,基本上我试图从 $all_data, ['product_name'] 字段中找到它
$data = 'plus'; // what i want to search
$search = $this->my_array_search($all_data, $data);
function my_array_search($array, $string) {
$pattern = preg_replace('/\s+/', ' ', preg_quote($string));
return array_filter($array, function ($value) use($pattern) {
return preg_match('/' . $pattern . '/', $value) == 1;
});
}
但它一直给我一个错误--
preg_match() 期望参数 2 是字符串,给定数组
我做错了什么,有谁知道如何解决这个问题!!
【问题讨论】:
-
顶级数组的项目是数组,而不是字符串。
-
@MaratTanalin 我应该如何从数组中搜索
-
$value是一个数组,$value['product_name']是该数组中您似乎感兴趣的字符串。 -
@Sammitch 是的,我应该如何从
['product_name']字段中搜索!